Corner Radius — vad är det, avrundningsradie i mobila appar

Författare: IT Sectr Publicerad: 2026-02-28 Lästid: 9 min

Corner radius — parameter för avrundning av hörn på UI-element, mätt i logiska pixlar (pt på iOS, dp på Android) som bestämmer radien på cirkeln som är inskriven i rektangelns hörn. Rätt val av corner radius påverkar uppfattningen av gränssnittet: stora avrundningar skapar en mjuk, vänlig ton, små — strikt och formell. Enligt Material Design Guidelines (Google, 2026) är rekommenderad radius för kort 8–16 dp, för knappar — 4–8 dp. Läs mer om hantering av elementens utseende i artikeln om skuggor i UI.

Huvudpunkter

  • Corner radius — avrundningsradie för hörn, mätt i pt (iOS) eller dp (Android).
  • Material Design rekommenderar 8–16 dp för kort, 4–8 dp för knappar, 16–28 dp för dialogrutor.
  • På iOS ställs cornerRadius in via CALayer.cornerRadius eller ClipRRect i SwiftUI.
  • I Android realiseras avrundning via shape (drawable XML), MaterialShapeDrawable eller ClipRRect i Compose.
  • För stor avrundning försämrar textens läsbarhet och kan dölja innehåll vid kanterna.

Vad är corner radius?

Corner radius — ett numeriskt värde som bestämmer graden av avrundning av hörnen på ett rektangulärt element. Ju högre värde, desto rundare blir hörnet. Vid värdet 0 förblir hörnet rakt (90°), vid ett värde lika med hälften av den kortare sidan omvandlas elementet till en cirkel (för en kvadrat) eller en avrundad rektangel med raka sidor (kapsel).

I mobildesign används corner radius för: kort och paneler, knappar, inmatningsfält, modala fönster, bilder och avatarer, förloppsindikatorer, chips och märken. Varje elementtyp har ett rekommenderat intervall för avrundning baserat på riktlinjerna från Material Design och Human Interface Guidelines.

Enligt Material Design 3 (Google, 2026) klassificeras hörnrundning i tre nivåer: small (4 dp) för knappar och inmatningsfält, medium (8–12 dp) för kort och ark, large (16–28 dp) för dialogrutor och bottom sheets. HIG Apple (2025) rekommenderar en enhetlig corner radius på 10–12 pt för systemelement (UIButton, UITextField) och 20+ pt för modala presentationer.

Corner radius på iOS: CALayer och SwiftUI

På iOS realiseras hörnrundning via egenskapen cornerRadius hos CALayer. I UIKit har varje UIView ett lager där cornerRadius kan ställas in. För mer komplexa avrundningar (olika radier för olika hörn) används maskedCorners och CACornerMask i kombination med UIBezierPath.

swift
// UIKit: avrundning via CALayer
import UIKit

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

I SwiftUI ställs avrundning in via modifieraren cornerRadius() eller via ClipShape med RoundedRectangle. SwiftUI stöder även individuell hörnrundning via UIRectCorner i kombination med clipped() och overlay().

swift
// SwiftUI: avrundning via RoundedRectangle
import SwiftUI

VStack {
    Text("Hörnradie 16")
        .padding()
        .background(
            RoundedRectangle(cornerRadius: 16)
                .fill(Color.blue)
        )
}

// Individuell hörnrundning
RoundedRectangle(
    cornerSize: CGSize(width: 16, height: 16),
    style: .continuous
)

Continuous corner radius — avrundningsstilen som Apple använder i iOS sedan lanseringen av iOS 7. Till skillnad från klassisk radie (circular) skapar continuous radius en mjukare avrundning genom att använda en Bezierkurva av tredje ordningen istället för en cirkelbåge. SwiftUI stöder denna stil via parametern style: .continuous i RoundedRectangle. Apple rekommenderar continuous corner radius för alla systemelement som visuellt mer naturlig.

Corner radius i Android: shape och Compose

I Android realiseras hörnrundning traditionellt via XML-shape-resurser i mappen res/drawable. Shape definierar bakgrundsformen med parametrarna cornerRadius och solid. För olika hörn används <, bottom, top och <right. I Material Design 3 lades MaterialShapeDrawable till med stöd för teman och dynamiska former.

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>

I Jetpack Compose ställs avrundning in via parametern shape i Modifier. Compose tillhandahåller RoundedCornerShape med stöd för olika radier för varje hörn och stil (CircularShape eller CutCornerShape). Compose stöder även continuous corner radius via RoundedCornerShape i kombination med grafisk kontur.

kotlin
// Jetpack Compose: avrundning via RoundedCornerShape
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 = "Kort med anpassad avrundning")
}

MaterialShapeDrawable i Android View System gör det möjligt att dynamiskt ändra corner radius utan att återskapa drawable. Använd ShapeAppearanceModel för exakt konfiguration: ställ in cornerFamily (rounded eller cut) och cornerSize för varje hörn separat.

Hur man väljer rätt corner radius

Valet av corner radius beror på elementtypen, användningssammanhanget och plattformen. Det finns ingen universell regel, men Material Design och HIG Apple ger tydliga rekommendationer för standardkomponenter. Grundprincipen: avrundningen ska vara märkbar men inte störa innehållet.

ElementtypRekommenderad radiusPlattformAnmärkning
Knappar4–8 dp / 8 ptiOS, AndroidJu större knapp, desto större radius
Kort8–16 dp / 10–12 ptiOS, AndroidMaterial Design: standard 12 dp
Inmatningsfält4–8 dp / 8 ptiOS, AndroidFör stor avrundning ser onaturlig ut
Modala fönster16–28 dp / 20+ ptiOS, AndroidiOS 18: standard 24 pt
Avatarer50 % av storlekeniOS, AndroidFör runda avatarer radius = halva sidan
Chips / Märken16–20 dp / 14 ptAndroidKapselform vid stor avrundning

Kontrastregel: element med olika corner radius i ett gränssnitt bör skilja sig med minst 4 dp för att den visuella skillnaden ska vara märkbar. Använd inte 3 nivåer av avrundning på en skärm — det skapar visuellt brus. Material Design 3 rekommenderar att använda högst två nivåer av avrundning per skärm: en för behållare (kort, dialogrutor) och en för interaktiva element (knappar, fält).

Corner radius i Flutter

I Flutter realiseras hörnrundning via klassen BorderRadius, som accepterar värdena Radius.circular() eller Radius.elliptical(). Flutter stöder individuell avrundning via BorderRadius.only() och BorderRadius.horizontal()/vertical(). Widgeten ClipRRect beskär underordnat element enligt angivet BorderRadius.

dart
// Flutter: avrundning via ClipRRect och Container
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('Anpassad hörnrundning'),
)

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

ClipRRect i Flutter används när en bild eller komplex widget behöver beskäras längs en avrundad kant. För enkla bakgrundsbehållare räcker BoxDecoration med borderRadius — det är mer prestandaeffektivt eftersom det inte skapar ett separat beskärningslager. Material Flutter 3.22+ stöder continuous corner radius via ContinuousRectangleBorder.

Vanliga frågor

Vad är skillnaden mellan corner radius i dp och pt?

dp (density-independent pixels) i Android och pt (points) i iOS — är logiska enheter som motsvarar fysisk storlek på skärmen oberoende av pixel densitet. 1 dp ≈ 1 pt ≈ 1/160 tum. Numeriska värden för corner radius i dp och pt kan användas som utbytbara vid överföring av design mellan plattformar.

Hur gör man avrundning endast av de övre hörnen?

På iOS använd maskedCorners med CACornerMask: layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]. I Android XML — . I Jetpack Compose — RoundedCornerShape(topStart = 12.dp, topEnd = 12.dp). I Flutter — BorderRadius.only(topLeft: Radius.circular(12), topRight: Radius.circular(12)).

Vad är continuous corner radius?

Continuous corner radius — en avrundningsstil där hörnet formas inte av en cirkelbåge utan av en Bezierkurva av tredje ordningen. Apple har använt denna stil sedan iOS 7 för alla systemelement. Visuellt ser continuous avrundning mjukare och mer naturlig ut jämfört med klassisk circular-stil.

Vilken corner radius ska jag använda för ett anpassat tangentbord?

Rekommenderas 10–12 pt på iOS (som systemtangentbordet) och 8–12 dp på Android. Tangenter inuti tangentbordet kan ha mindre radius (4–6 dp) eller vara utan avrundning. För att öka tryckytan, använd padding 4–8 dp mellan den avrundade kanten och knappens kant.

Varför tillämpas inte hörnrundning på UITableViewCell?

UITableViewCell ärver inte automatiskt cornerRadius från contentView, eftersom cellens bakgrund ritas i backgroundView. För att runda cellen, ställ in cornerRadius för både contentView.layer och backgroundView.layer samtidigt. I SwiftUI använd .listRowBackground() med RoundedRectangle.

Sammanfattning

  • Corner radius — avrundningsradie för UI-elementens hörn, mätt i dp (Android) eller pt (iOS).
  • Material Design rekommenderar 8–16 dp för kort, 4–8 dp för knappar, 16–28 dp för dialogrutor.
  • På iOS ställs avrundning in via CALayer.cornerRadius (UIKit) eller RoundedRectangle (SwiftUI).
  • I Android — via shape XML (View System) eller RoundedCornerShape (Jetpack Compose).
  • Continuous corner radius — mjukare avrundning via Bezierkurva, används i iOS sedan iOS 7.
  • Flutter använder BorderRadius och ClipRRect för avrundning av behållare och beskärning av bilder.
  • Använd inte mer än två nivåer av avrundning på en skärm för att bevara visuell integritet.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också