Corner Radius — bu nima, mobil ilovalarda yumaloqlash radiusi

Muallif: IT Sectr Nashr etilgan: 2026-02-28 O'qish vaqti: 9 daq

Corner radius — UI elementlari burchaklarini yumaloqlash parametri bo'lib, mantiqiy piksellarda (iOS da pt, Android da dp) o'lchanadi va to'rtburchak burchagiga chizilgan aylana radiusini aniqlaydi. Corner radius ni to'g'ri tanlash interfeysni idrok etishga ta'sir qiladi: katta yumaloqlashtirishlar yumshoq, do'stona ohang yaratadi, kichiklari esa qat'iy va rasmiy. Material Design Guidelines (Google, 2026) ma'lumotlariga ko'ra, kartalar uchun tavsiya etilgan radius 8–16 dp, tugmalar uchun 4–8 dp. Elementlarning tashqi ko'rinishini boshqarish haqida batafsil UI dagi soyalar haqidagi maqolada o'qing.

Asosiy ma'lumotlar

  • Corner radius — pt (iOS) yoki dp (Android) da o'lchanadigan burchaklarni yumaloqlash radiusi.
  • Material Design kartalar uchun 8–16 dp, tugmalar uchun 4–8 dp, dialoglar uchun 16–28 dp tavsiya qiladi.
  • iOS da cornerRadius CALayer.cornerRadius yoki SwiftUI da ClipRRect orqali o'rnatiladi.
  • Android da yumaloqlash shape (drawable XML), MaterialShapeDrawable yoki Compose da ClipRRect orqali amalga oshiriladi.
  • Juda katta yumaloqlashtirish matnning o'qilishini yomonlashtiradi va chekkalarda tarkibni yashirishi mumkin.

Corner radius nima?

Corner radius — to'rtburchak element burchaklarining yumaloqlash darajasini belgilaydigan raqamli qiymat. Qiymat qanchalik yuqori bo'lsa, burchak shunchalik yumaloq bo'ladi. 0 qiymatida burchak to'g'ri (90°) qoladi, kichik tomonning yarmiga teng qiymatda element aylanaga (kvadrat uchun) yoki to'g'ri tomonlari bo'lgan yumaloq to'rtburchakka (kapsulaga) aylanadi.

Mobil dizaynda corner radius quyidagilar uchun ishlatiladi: kartalar va plitkalar, tugmalar, kiritish maydonlari, modal oynalar, tasvirlar va avatarlar, borish ko'rsatkichlari, chiplar va badge lar. Har bir element turi Material Design va Human Interface Guidelines ga asoslangan tavsiya etilgan diapazonga ega.

Material Design 3 (Google, 2026) ma'lumotlariga ko'ra, burchaklarni yumaloqlash uch darajaga bo'linadi: small (4 dp) tugmalar va kiritish maydonlari uchun, medium (8–12 dp) kartalar va varaqlar uchun, large (16–28 dp) dialoglar va bottom sheet lar uchun. HIG Apple (2025) tizim elementlari (UIButton, UITextField) uchun yagona corner radius 10–12 pt va modal taqdimotlar uchun 20+ pt tavsiya qiladi.

iOS da corner radius: CALayer va SwiftUI

iOS da burchaklarni yumaloqlash CALayer dagi cornerRadius xususiyati orqali amalga oshiriladi. UIKit da har bir UIView cornerRadius o'rnatilishi mumkin bo'lgan qatlamga ega. Murakkabroq yumaloqlashtirishlar (turli burchaklar uchun turli radiuslar) uchun UIBezierPath bilan birgalikda maskedCorners va CACornerMask ishlatiladi.

swift
// UIKit: CALayer orqali yumaloqlash
import UIKit

let cardView = UIView()
cardView.backgroundColor = .systemBackground
cardView.layer.cornerRadius = 12
cardView.layer.maskedCorners = [
    .layerMinXMinYCorner,
    .layerMaxXMinYCorner
]

SwiftUI da yumaloqlash cornerRadius() modifikatori yoki RoundedRectangle bilan ClipShape orqali o'rnatiladi. SwiftUI shuningdek clipped() va overlay() bilan birgalikda UIRectCorner orqali individual burchak yumaloqlashni qo'llab-quvvatlaydi.

swift
// SwiftUI: RoundedRectangle orqali yumaloqlash
import SwiftUI

VStack {
    Text("Burchak radiusi 16")
        .padding()
        .background(
            RoundedRectangle(cornerRadius: 16)
                .fill(Color.blue)
        )
}

// Individual burchak yumaloqlash
RoundedRectangle(
    cornerSize: CGSize(width: 16, height: 16),
    style: .continuous
)

Continuous corner radius — Apple tomonidan iOS 7 chiqarilishidan beri iOS da ishlatiladigan yumaloqlash uslubi. Klassik radiusdan (circular) farqli o'laroq, continuous radius aylana yoyi o'rniga uchinchi darajali Bezier egri chizig'idan foydalanib, silliqroq yumaloqlash yaratadi. SwiftUI bu uslubni RoundedRectangle da style: .continuous parametri orqali qo'llab-quvvatlaydi. Apple continuous corner radius ni barcha tizim elementlari uchun vizual jihatdan tabiiyroq deb tavsiya qiladi.

Android da corner radius: shape va Compose

Android da burchaklarni yumaloqlash an'anaviy ravishda res/drawable papkasidagi XML shape resurslari orqali amalga oshiriladi. Shape cornerRadius va solid parametrlari bilan fon shaklini belgilaydi. Turli burchaklar uchun <, bottom, top va <right ishlatiladi. Material Design 3 ga mavzular va dinamik shakllarni qo'llab-quvvatlaydigan MaterialShapeDrawable qo'shilgan.

xml
<!-- res/drawable/bg_card.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white" />
    <corners android:radius="12dp" />
</shape>

Jetpack Compose da yumaloqlash Modifier dagi shape parametri orqali o'rnatiladi. Compose har bir burchak uchun turli radiuslar va uslubni (CircularShape yoki CutCornerShape) qo'llab-quvvatlaydigan RoundedCornerShape ni taqdim etadi. Compose shuningdek grafik kontur bilan birgalikda RoundedCornerShape orqali continuous corner radius ni qo'llab-quvvatlaydi.

kotlin
// Jetpack Compose: RoundedCornerShape orqali yumaloqlash
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp

Card(
    shape = RoundedCornerShape(
        topStart = 16.dp,
        topEnd = 16.dp,
        bottomStart = 4.dp,
        bottomEnd = 4.dp
    ),
    elevation = CardDefaults.cardElevation(defaultElevation = 4.dp)
) {
    Text(text = "Maxsus yumaloqlash bilan karta")
}

MaterialShapeDrawable Android View System da drawable ni qayta yaratmasdan corner radius ni dinamik o'zgartirish imkonini beradi. Aniq sozlash uchun ShapeAppearanceModel dan foydalaning: har bir burchak uchun alohida cornerFamily (rounded yoki cut) va cornerSize ni o'rnating.

To'g'ri corner radius ni qanday tanlash kerak

Corner radius ni tanlash element turiga, foydalanish kontekstiga va platformaga bog'liq. Universal qoida yo'q, lekin Material Design va HIG Apple standart komponentlar uchun aniq tavsiyalar beradi. Asosiy printsip: yumaloqlash sezilarli bo'lishi kerak, lekin tarkibga xalaqit bermasligi kerak.

Element turiTavsiya etilgan radiusPlatformaIzoh
Tugmalar4–8 dp / 8 ptiOS, AndroidTugma qanchalik katta bo'lsa, radius shunchalik katta
Kartalar8–16 dp / 10–12 ptiOS, AndroidMaterial Design: standart 12 dp
Kiritish maydonlari4–8 dp / 8 ptiOS, AndroidJuda katta yumaloqlash g'ayritabiiy ko'rinadi
Modal oynalar16–28 dp / 20+ ptiOS, AndroidiOS 18: standart 24 pt
AvatarlarO'lchamning 50%iOS, AndroidDumaloq avatarlar uchun radius = tomonning yarmi
Chip lar / Badge lar16–20 dp / 14 ptAndroidKatta yumaloqlashda kapsula shakli

Kontrast qoidasi: bitta interfeysdagi turli corner radius ga ega elementlar vizual farq sezilarli bo'lishi uchun kamida 4 dp ga farq qilishi kerak. Bir ekranda 3 daraja yumaloqlashdan foydalanmang — bu vizual shovqin yaratadi. Material Design 3 ekranda ikkita darajadan ko'p bo'lmagan yumaloqlashni tavsiya qiladi: biri konteynerlar uchun (kartalar, dialoglar) va biri interaktiv elementlar uchun (tugmalar, maydonlar).

Flutter da corner radius

Flutter da burchaklarni yumaloqlash Radius.circular() yoki Radius.elliptical() qiymatlarini qabul qiladigan BorderRadius sinfi orqali amalga oshiriladi. Flutter BorderRadius.only() va BorderRadius.horizontal()/vertical() orqali individual yumaloqlashni qo'llab-quvvatlaydi. ClipRRect vidjeti berilgan BorderRadius bo'yicha bola elementni kesadi.

dart
// Flutter: ClipRRect va Container orqali yumaloqlash
import 'package:flutter/material.dart';

Container(
    decoration: BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.only(
            topLeft: Radius.circular(16.0),
            topRight: Radius.circular(16.0),
            bottomLeft: Radius.circular(4.0),
            bottomRight: Radius.circular(4.0),
        ),
    ),
    child: Text('Maxsus burchak yumaloqlash'),
)

// ClipRRect bilan Image
ClipRRect(
    borderRadius: BorderRadius.circular(12.0),
    child: Image.network(
        'https://example.com/image.jpg',
        fit: BoxFit.cover,
    ),
)

ClipRRect Flutter da tasvir yoki murakkab vidjetni yumaloq chegara bo'ylab kesish kerak bo'lganda ishlatiladi. Oddiy fon konteynerlari uchun borderRadius bilan BoxDecoration yetarli — bu samaraliroq, chunki alohida kesuvchi qatlam yaratmaydi. Material Flutter 3.22+ ContinuousRectangleBorder orqali continuous corner radius ni qo'llab-quvvatlaydi.

Ko'p beriladigan savollar

Corner radius dp va pt da qanday farq qiladi?

dp (density-independent pixels) Android da va pt (points) iOS da — piksel zichligidan qat'iy nazar ekrandagi fizik o'lchamga mos keladigan mantiqiy birliklardir. 1 dp ≈ 1 pt ≈ 1/160 dyuym. Corner radius ning dp va pt dagi raqamli qiymatlari platformalar o'rtasida dizaynni ko'chirishda o'zaro almashinadigan sifatida ishlatilishi mumkin.

Faqat yuqori burchaklarni qanday yumaloqlashtirish mumkin?

iOS da CACornerMask bilan maskedCorners dan foydalaning: layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]. Android XML da — . Jetpack Compose da — RoundedCornerShape(topStart = 12.dp, topEnd = 12.dp). Flutter da — BorderRadius.only(topLeft: Radius.circular(12), topRight: Radius.circular(12)).

Continuous corner radius nima?

Continuous corner radius — burchak aylana yoyi bo'ylab emas, balki uchinchi darajali Bezier egri chizig'i bo'ylab shakllanadigan yumaloqlash uslubi. Apple bu uslubni iOS 7 dan beri barcha tizim elementlari uchun ishlatadi. Vizual ravishda continuous yumaloqlash klassik circular uslubiga nisbatan silliqroq va tabiiyroq ko'rinadi.

Maxsus klaviatura uchun qaysi corner radius dan foydalanish kerak?

iOS da 10–12 pt (tizim klaviaturasi kabi) va Android da 8–12 dp tavsiya etiladi. Klaviatura ichidagi tugmalar kichikroq radiusga (4–6 dp) ega bo'lishi yoki yumaloqlanmagan bo'lishi mumkin. Tegish maydonini oshirish uchun yumaloq chegara va tugma chekkasi o'rtasida 4–8 dp padding ishlating.

Nega UITableViewCell ga burchak yumaloqlash qo'llanilmaydi?

UITableViewCell avtomatik ravishda contentView dan cornerRadius ni meros qilib olmaydi, chunki hujayraning foni backgroundView da chiziladi. Hujayrani yumaloqlashtirish uchun cornerRadius ni contentView.layer va backgroundView.layer uchun bir vaqtda o'rnating. SwiftUI da RoundedRectangle bilan .listRowBackground() dan foydalaning.

Xulosa

  • Corner radius — dp (Android) yoki pt (iOS) da o'lchanadigan UI elementlari burchaklarini yumaloqlash radiusi.
  • Material Design kartalar uchun 8–16 dp, tugmalar uchun 4–8 dp, dialoglar uchun 16–28 dp tavsiya qiladi.
  • iOS da yumaloqlash CALayer.cornerRadius (UIKit) yoki RoundedRectangle (SwiftUI) orqali o'rnatiladi.
  • Android da — shape XML (View System) yoki RoundedCornerShape (Jetpack Compose) orqali.
  • Continuous corner radius — iOS 7 dan iOS da ishlatiladigan Bezier egri chizig'i orqali silliqroq yumaloqlash.
  • Flutter konteynerlarni yumaloqlash va tasvirlarni kesish uchun BorderRadius va ClipRRect dan foydalanadi.
  • Vizual yaxlitlikni saqlash uchun bir ekranda ikkitadan ko'p yumaloqlash darajasidan foydalanmang.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing