Files
laude/tailwind.config.js
AnRil ee2dc19daa
Some checks failed
CI / Typecheck + Tests (push) Has been cancelled
CI / Build (Windows) (push) Has been cancelled
Release / Build installer + publish release (push) Has been cancelled
release(v0.3.4): шрифты — Plus Jakarta Sans + Bricolage Grotesque
Manrope воспринимался слишком строгим и корпоративным. Замена даёт
больше характера и тёплый "попсовый" feel:

- Body/UI: Manrope → Plus Jakarta Sans (мягкие округлые формы 'a' 'g',
  очень распространён в современных трендовых приложениях)
- Display/hero: Fraunces → Bricolage Grotesque (variable шрифт с opsz
  axis: 24 для нормальных заголовков, 96 для hero — гротеск с
  характерными слегка сжатыми формами и большим контрастом штрихов)
- Mono: JetBrains Mono без изменений

Все hero-заголовки пробампаны до 34→40px и font-bold (700), Bricolage
лучше всего смотрится в полужирном/жирном. Sidebar логотип «Laude»
тоже font-bold.

Также:
- body line-height: 1.45 → 1.5 для лучшей читаемости
- Reminder exercise name: 28→30, semibold→bold
- Match summary title: 24→26, semibold→bold
- Sidebar slogan: 12→13/medium, контраст 45→55

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 18:36:59 +07:00

85 lines
2.5 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
export default {
content: ['./src/renderer/index.html', './src/renderer/src/**/*.{ts,tsx}'],
darkMode: 'class',
theme: {
extend: {
colors: {
// iOS semantic palette
accent: 'rgb(var(--accent) / <alpha-value>)',
'accent-soft': 'rgb(var(--accent-soft) / <alpha-value>)',
'accent-2': 'rgb(var(--accent-2) / <alpha-value>)',
success: 'rgb(var(--success) / <alpha-value>)',
warning: 'rgb(var(--warning) / <alpha-value>)',
destructive: 'rgb(var(--destructive) / <alpha-value>)',
info: 'rgb(var(--info) / <alpha-value>)',
// Surfaces
bg: 'rgb(var(--bg) / <alpha-value>)',
'bg-deep': 'rgb(var(--bg-deep) / <alpha-value>)',
surface: 'rgb(var(--surface) / <alpha-value>)',
'surface-2': 'rgb(var(--surface-2) / <alpha-value>)',
'surface-elevated': 'rgb(var(--surface-elevated) / <alpha-value>)',
// Text & lines
text: 'rgb(var(--text) / <alpha-value>)',
muted: 'rgb(var(--muted) / <alpha-value>)',
hairline: 'rgb(var(--hairline) / <alpha-value>)',
border: 'rgb(var(--border) / <alpha-value>)',
// Legacy aliases (so unchanged pages still compile)
victory: 'rgb(var(--victory) / <alpha-value>)',
defeat: 'rgb(var(--defeat) / <alpha-value>)',
xp: 'rgb(var(--xp) / <alpha-value>)'
},
fontFamily: {
sans: [
'Plus Jakarta Sans',
'-apple-system',
'SF Pro Text',
'Segoe UI Variable Text',
'Segoe UI',
'system-ui',
'sans-serif'
],
display: [
'Bricolage Grotesque',
'Plus Jakarta Sans',
'-apple-system',
'SF Pro Display',
'system-ui',
'sans-serif'
],
serif: [
'Bricolage Grotesque',
'Plus Jakarta Sans',
'-apple-system',
'SF Pro Display',
'system-ui',
'sans-serif'
],
mono: [
'JetBrains Mono',
'ui-monospace',
'SF Mono',
'Cascadia Code',
'Menlo',
'monospace'
]
},
borderRadius: {
// iOS-specific radii
xl: '14px',
'2xl': '18px',
'3xl': '22px'
},
boxShadow: {
ios: '0 0.5px 0 rgb(0 0 0 / 0.04), 0 1px 2px rgb(0 0 0 / 0.05), 0 4px 12px rgb(0 0 0 / 0.04)',
sheet:
'0 1px 2px rgb(0 0 0 / 0.06), 0 20px 50px -16px rgb(0 0 0 / 0.4)'
}
}
},
plugins: []
}