starter-style-guide
Bu template'in tasarim sistemi referansi — renk (colorScheme + AppThemeColors semantic token'lari), tipografi (textTheme slotlari, Poppins/Inter), spacing/radius/golge/sure token'lari (AppPaddings, Ap
SKILL.md.claude/skills/starter-style-guide/SKILL.md
GitHubTasarim Sistemi Referansi
UI'yi bu template'in kurallariyla yazmak icin hizli bakis. Baglayici kurallar widget_and_theme.md ve design_tokens.md'de — bu skill onlarin calisma anindaki checklist'i.
Uygula, icat etme. Eksik bir token varsa cagri yerine deger yazma; token dosyasina ekle.
Ne zaman calistir
- Herhangi bir ekran/widget yazarken veya restyle ederken.
- "hangi renk/spacing/radius", "tasarim sistemine uydur".
Ne zaman calistirma
- Butun feature iskelesi (cubit+state+view) →
starter-feature. - Yazilmis kodu denetleme →
starter-review.
Renk
- Once
Theme.of(context).colorScheme.*—primary,surface,onSurface,onSurfaceVariant,error,outline... - Varyanttan bagimsiz semantic tonlar:
context.appColors.*(app_theme_colors.dart). - ❌ View icinde
Color(0x...)/Colors.<ad>. Yeni renk gerekiyorsaAppThemeColors'a ekle — hem light hem dark degeriyle. - Tema 8 varyant × light/dark uretir; sabit renk yazmak varyant sistemini kirar.
Tipografi
Theme.of(context).textTheme.*. Slot tablosu: widget_and_theme.md.- Ozellestirme
copyWithile. ❌ InlineTextStyle(fontSize: ...). - Fontlar tema uzerinden gelir (Poppins: display/headline, Inter: title/label/body).
❌ Hardcoded
fontFamily—FontFamily.*uretilmis sabitleri var.
Spacing / radius / golge / sure
| Ihtiyac | Token |
|---|---|
| Padding, bosluk | AppPaddings.* |
| Kose yaricapi | AppRadius.* |
| Golge | AppShadows.card(context) gibi tema duyarli yardimcilar |
| Animasyon suresi | AppDurations.* |
| Ikon boyutu | AppIconSizes.* |
| Responsive olcek | context.r(...) / context.rf(...), genislik esigi context.isWide |
❌ Ham EdgeInsets.all(16), SizedBox(height: 24), BorderRadius.circular(12),
Duration(milliseconds: 300).
Column/Row icinde bosluk icin spacing: parametresini kullan.
Bilesenler — once katalogu kontrol et
- Buton:
AppPrimaryButton/AppSecondaryButton/AppTextButton(haptic dahil). - Ekran durumlari:
AppLoadingView,AppErrorView,AppEmptyView,AppStateView. - Form:
AppTextField+AppValidatorhiyerarsisi. - Sheet/dialog:
context.showAppBottomSheet,context.showConfirmDialog,AppSelectSheet,AppErrorSheet. - Geri bildirim:
context.showSuccessSnack/showErrorSnack/showInfoSnack. - Kabuk:
AppScaffold,KeyboardDismisser,AppSemantics.
Katalogda varsa yeniden yazma. Yoksa: uygulama geneli mi → product/widget/,
feature'a mi ozel → feature/<ad>/widget/.
Metin
Kullaniciya gorunen her metin LocaleKeys.*.tr(); anahtar hem tr.json hem
en.json'a eklenir, sonra ./script/lang.sh.
Ceviriye girmeyen sabitler (URL, teknik string) AppString.
Yeni ekran checklist
- Renk yalnizca
colorScheme/context.appColors - Metin stili yalnizca
textTheme(+copyWith) - Padding/radius/sure/ikon token'dan
- Butonlar ve durum widget'lari katalogdan
- Tum metinler
LocaleKeys - Asset'ler
Assets.* - Light ve dark'ta okunur
-
context.isWideile genis ekran kontrolu - Dort durum ele alindi (loading/error/empty/data)
Yapma → Yap
| Yapma | Yap |
|---|---|
Colors.blue / Color(0xFF...) |
colorScheme.primary / context.appColors.* |
TextStyle(fontSize: 24) |
textTheme.headlineSmall |
EdgeInsets.all(24) |
AppPaddings.allXxl |
SizedBox(height: 16) |
Column(spacing: AppPaddings.l, ...) |
BorderRadius.circular(12) |
AppRadius.md |
Duration(milliseconds: 300) |
AppDurations.short |
Text('Kaydet') |
Text(LocaleKeys.general_save.tr()) |
Image.asset('assets/image/x.png') |
Assets.image.x.image() |
CircularProgressIndicator() |
AppLoadingView() |
Bu skill referanstir. Gercek iskele kurmak icin starter-feature.