/*
 * Copyright 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.compose.foundation.samples

import androidx.annotation.Sampled
import androidx.compose.Composable
import androidx.ui.core.Modifier
import androidx.compose.foundation.Border
import androidx.compose.foundation.Box
import androidx.compose.foundation.ContentGravity
import androidx.compose.foundation.Text
import androidx.compose.foundation.shape.corner.CircleShape
import androidx.ui.graphics.Color
import androidx.compose.foundation.layout.preferredSize
import androidx.ui.unit.dp

@Sampled
@Composable
fun SimpleCircleBox() {
    Box(
        modifier = Modifier.preferredSize(100.dp),
        backgroundColor = Color.Cyan,
        border = Border(10.dp, Color.Red),
        shape = CircleShape,
        gravity = ContentGravity.Center
    ) {
        Text("I'm box")
    }
}