package com.example.cardname import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Email import androidx.compose.material.icons.filled.Phone import androidx.compose.material.icons.filled.Share import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.example.cardname.ui.theme.CardNameTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { CardNameTheme { Surface( modifier = Modifier .fillMaxSize() .background( brush = Brush.verticalGradient( colors = listOf( Color(0xFF4A90E2), Color(0xFF50E3C2) ) ) ), ) { BusinessCard() } } } } } @Composable fun BusinessCard() { Box( modifier = Modifier .fillMaxSize(), contentAlignment = Alignment.Center ) { // Kartu utama Card( modifier = Modifier .width(320.dp) .height(460.dp) .shadow(12.dp, RoundedCornerShape(24.dp)), shape = RoundedCornerShape(24.dp), colors = CardDefaults.cardColors( containerColor = Color.White ) ) { Column( modifier = Modifier .fillMaxSize() .padding(24.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceBetween ) { Spacer(modifier = Modifier.height(8.dp)) // Foto profil Image( painter = painterResource(id = R.drawable.ic_launcher_foreground), contentDescription = "Profile Picture", modifier = Modifier .size(100.dp) .clip(CircleShape) ) // Nama dan title Column(horizontalAlignment = Alignment.CenterHorizontally) { Text( text = "Dimas Hendri Pamungkas", fontSize = 22.sp, fontWeight = FontWeight.Bold, color = Color(0xFF333333) ) Text( text = "Android Developer", fontSize = 16.sp, color = Color.Gray ) } // Garis pembatas Divider( color = Color(0xFFE0E0E0), thickness = 1.dp, modifier = Modifier.padding(vertical = 12.dp) ) // Informasi kontak Column( horizontalAlignment = Alignment.Start, verticalArrangement = Arrangement.spacedBy(10.dp) ) { ContactInfo( icon = Icons.Default.Phone, text = "+62 812 3456 7890" ) ContactInfo( icon = Icons.Default.Share, text = "@dimas_hp" ) ContactInfo( icon = Icons.Default.Email, text = "dimas@email.com" ) } Spacer(modifier = Modifier.height(8.dp)) } } } } @Composable fun ContactInfo(icon: ImageVector, text: String) { Row( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth() ) { Icon( imageVector = icon, contentDescription = null, tint = Color(0xFF4A90E2), modifier = Modifier.size(22.dp) ) Spacer(modifier = Modifier.width(10.dp)) Text( text = text, fontSize = 15.sp, color = Color(0xFF333333) ) } } @Preview(showBackground = true) @Composable fun BusinessCardPreview() { CardNameTheme { BusinessCard() } }