A warm, rounded, pastel baby-care tracker interface using tinted soft cards, generous radii, a serif display face for numbers/names, and gentle low-opacity elevation.
24px 4px 14px Β· card padding: 22px 20px 20px16pxfrom { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; }
from { transform: translateY(100%); } to { transform: none; }
| Field | Value |
|---|---|
| Site | Keyhan Bebek (omegabilisim.com.tr/bebek) |
| Analyzed | 2024 |
| Design language | Soft-UI pastel nursery, serif-display accents |
| Overall mood | Warm, calm, friendly, reassuring, low-contrast |
| Framework hints | Vanilla JS SPA (screen toggling), no CSS framework, Google Fonts (Fraunces + Inter), mobile-first PWA (safe-area insets, theme-color, apple-touch-icon) |
Primary style: Soft-UI / pastel tinted cards (styleHints: "soft-ui / layered elevation", "rounded / pill-heavy").
--r-lg: 26px) filled with a very pale tint of its category color, bordered by a slightly deeper tint of the same hue (never a neutral gray border), and lifted with a single large soft shadow 0 8px 22px rgba(120,110,95,.08). Shadows are warm-brown-tinted, not black. Categories are color-coded:--feed #f0a868, soft #fefaf1, border #f6ecd6, icon well #fbe6c4)--sleep #6f8ad4, soft #f5f8fb, border #e3ebf3, icon well #dfe7f8)--diaper #7fc8a9, soft #eef7f1, border #dcefe4)--medicine #e88a8a, soft #fef7f1, border #f5dcdc)--note #c79fe0, soft #f6eefb)Secondary style: pill-heavy rounded UI. Time chips, category chips, avatars and nav elements use border-radius: 999px. Rule: interactive status/time labels are always fully-rounded pills tinted to their category, with a deeper-tone text color (e.g. feed pill #fbedd6 bg + #c98a3b text).
#6a7480), no pure-black on white..06em, uppercase, in muted slate.| Token | Hex | RGB | HSL | Usage |
|---|---|---|---|---|
| --feed | #f0a868 | 240,168,104 | 30Β°,79%,67% | Primary action, feed accent |
| --sleep | #6f8ad4 | 111,138,212 | 224Β°,53%,63% | Sleep accent, links |
| --diaper | #7fc8a9 | 127,200,169 | 154Β°,39%,64% | Diaper accent (success-ish) |
| --note | #c79fe0 | 199,159,224 | 277Β°,52%,75% | Note accent, focus ring |
| --medicine | #e88a8a | 232,138,138 | 0Β°,68%,73% | Medicine accent |
| Token | Hex | Usage |
|---|---|---|
| --bg-0 / --bg-1 | #fefefe | Page background |
| --card | #ffffff | Neutral surface |
| --card-2 | #f3eee7 | Ghost button / toast |
| --line | #ece4d8 | Borders on neutral cards |
| --text | #2f3a44 | Primary text |
| --dim | #8a93a0 | Muted meta text |
| (secondary) | #6a7480 | Card sub-text |
| (eyebrow) | #5b6675 | Section titles |
| --primary | #2a1c0d | Text on apricot button |
| Token | Hex | Usage |
|---|---|---|
| --danger | #e07a7a | Destructive text/border |
| insight-ok | #7fc8a9 | Positive left-border |
| insight-warn | #e2a13c | Warning left-border |
| Category | Card bg | Border | Icon well | Label color | Time pill bg / text |
|---|---|---|---|---|---|
| Feed | #fefaf1 | #f6ecd6 | #fbe6c4 | #d9943f | #fbedd6 / #c98a3b |
| Sleep | #f5f8fb | #e3ebf3 | #dfe7f8 | #6f8ad4 | #e6e2f7 / #6b62b0 |
| Diaper | #eef7f1 | #dcefe4 | #d3ecdf | #4f9c79 | #eef7f1 / #4f9c79 |
| Medicine | #fbe7e0 | #f2d3cb | #fef7f1 | #c25c5c | #fef7f1 / #c25c5c |
| Note | #f6eefb | β | #f6eefb | β | #f6eefb / #9568bb |
Dark mode: none detected. Design is light-only.
| Name | CSS | Usage |
|---|---|---|
| Page wash | linear-gradient(170deg, var(--bg-0) 0%, var(--bg-1) 100%) | Gate overlay bg |
| Feed bar | linear-gradient(to top, var(--feed), #f6c79a) | Chart bars (day/feed) |
| Night bar | linear-gradient(to top, #5a72c0, #8fa3e0) | Chart bars (night) |
| Pee bar | linear-gradient(to top, #6fb3e0, #a7d2f0) | Diaper pee segment |
| Poop bar | linear-gradient(to top, #b98a5a, #d4a97c) | Diaper poop segment |
| Sleep bar | linear-gradient(to top, var(--sleep), #a6b8e8) | Sleep chart bars |
| Role | Stack | Source | Weights |
|---|---|---|---|
| Display / values | "Fraunces", Georgia, "Times New Roman", serif | Google Fonts | 500,600,700 |
| UI / body | "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif | Google Fonts | 400,500,600,700 |
Font link (verbatim):
https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap
| Token | Size | Line-height | Weight | Letter-spacing | Usage |
|---|---|---|---|---|---|
| name (serif) | 2.5rem | 1.05 | 700 | -.01em | Baby name (H1) |
| stat-value (serif) | 1.85rem | 1.1 | 700 | 0 | Bigcard main value |
| hello | 1.15rem | 1.05 | 500 | 0 | "Merhaba," |
| greeting | 1.05rem | 1.45 | 400 | 0 | Centered subtitle |
| tl-title | 1.05rem | β | 700 | 0 | Timeline item title |
| body | 1rem | 1.45 | 400 | 0 | Default |
| bigcard-sub | .95rem | β | 400 | 0 | Sub text |
| eyebrow / label | .82rem | 1.4 | 700 | .06em (.04em on card labels) | UPPERCASE section titles |
| meta | .82rem | β | 400/500 | 0 | Card meta row |
Base unit: 4px. Common tokens: 4, 6, 8, 10, 12, 14, 16, 18, 22, 24, 32px. Card gap = 16px; grid gap for actions = 12px. Tap target --tap: 56px.
max-width: 560px, centered, side padding 22px. Mobile-first single column..cards-stack: 2 columns 1fr 1fr, gap 16px..action-grid: 4 columns, gap 12px, min tile height 116px.grid-template-columns: auto 1fr auto, gap 14px..cards-stack and .action-grid at β€560px if needed.| Token | Value | Usage |
|---|---|---|
| --r-lg | 26px | Cards, sheets |
| --r-md | 18px | Buttons, inputs, controls |
| --r-sm | 14px | Chips-row inputs, tabs |
| circle | 50% | Icon wells, avatars |
| pill | 999px | Chips, time badges, bars |
Borders: 1px, tinted to card hue or --line #ece4d8.
| Token | Value | Usage |
|---|---|---|
| card | 0 8px 22px rgba(120,110,95,.08) | Bigcards |
| card-soft | 0 6px 18px rgba(120,110,95,.06) | Stat/pillchart cards |
| recent | 0 8px 22px rgba(120,110,95,.06) | Recent list card |
| chip | 0 4px 12px rgba(120,110,95,.08) | Caregiver chip |
| avatar | 0 4px 14px rgba(193,150,90,.25) | Brand avatar (warm glow) |
| tabbar | 0 -4px 20px rgba(120,110,95,.06) | Bottom nav |
| overlay | 0 8px 24px rgba(0,0,0,.25/.4) | Tooltip / toast |
Strategy: single warm-brown-tinted soft shadow per surface. No double contact+ambient; warmth comes from the rgba(120,110,95) tint rather than neutral black.
#e3ddf0 behind icon wells (left:29px; top:62px; bottom:-1px).rgba(0,0,0,.55).filter: grayscale(1) opacity(.55), active clears filter.None. The page background is a flat #fefefe. Do not add animated blobs.
Durations: fade .25s/.2s/.15s ease; sheet slideup .28s cubic-bezier(.2,.8,.2,1); bar/width transitions .4s ease; press transform .08s ease.
Keyframes:
@keyframes fade { from { opacity:0; transform:translateY(6px);} to { opacity:1; transform:none;} }
@keyframes slideup { from { transform:translateY(100%);} to { transform:none;} }
.screen { animation: fade .25s ease; }slideup .28s cubic-bezier(.2,.8,.2,1)..action:active{transform:scale(.96)}, buttons scale(.98).prefers-reduced-motion: reduce.Mostly CSS-only for the visible dashboard. The companion animations.js provides an optional entrance-fade reveal ([data-reveal] with [data-reveal-delay]) matching the fade keyframe, plus a .scrolled nav-state helper β guarded by reduced-motion. The static screenshot needs no JS to look correct.
| Prop | Value |
|---|---|
| bg | #f0a868 |
| color | #2a1c0d |
| radius | 18px |
| min-height | 56px |
| weight | 600 / 1.05rem |
| active | scale(.98) |
bg #f3eee7, border 1px #ece4d8, color #2f3a44, same radius/height.
Tinted bg + same-hue border, 26px radius, padding 22px 20px 20px, shadow card. 58px circular icon well top-left, uppercase colored label, serif value, thin divider rgba(120,120,120,.14), muted meta row.
border-radius:999px; padding:6px 12px; font-weight:700; font-size:.92rem; tinted bg + deeper text per category.
min-height 116px, tinted bg + border, centered icon + label, radius 26px, active scale(.96).
grid auto 1fr auto, 50px circular tinted icon well, bold title with muted soft span, right-aligned time pill.
Pill: padding:11px 16px; border-radius:999px; border:1px #ece4d8; box-shadow chip; 26px avatar + name (600) + chevron.
height 56px, bg #fefefe, border 1px #ece4d8, radius 18px, padding 0 14px, font 1.05rem.
Uses colorful 3D-style raster PNG emoji-icons (bottle, diaper, medicine, note, moon) sized 32β52px inside circular tinted wells. In recreations without those assets, substitute native emoji (πΌ π§· π π π) or inline SVG at similar scale. Tab icons 24px, grayscaled when inactive.
Rounded circular avatar photos (62px brand, 26px chip). Playful 3D-render icon style. No hero photography; illustration/emoji-driven.
| Check | Status |
|---|---|
| Focus ring | 3px solid #c79fe0, offset 2px |
| Reduced motion | Fully honored |
| Tap targets | β₯56px |
| Text contrast | Body #2f3a44 on #fefefe OK; muted #8a93a0 borderline for small text |
| Numeric legibility | tabular-nums on |
:root{
--bg-0:#fefefe; --bg-1:#fefefe; --card:#fff; --card-2:#f3eee7;
--line:#ece4d8; --text:#2f3a44; --dim:#8a93a0;
--feed:#f0a868; --feed-soft:#fdf3e3;
--sleep:#6f8ad4; --sleep-soft:#eef2fb;
--diaper:#7fc8a9; --diaper-soft:#eef7f1;
--note:#c79fe0; --note-soft:#f6eefb;
--medicine:#e88a8a; --medicine-soft:#fef7f1;
--danger:#e07a7a;
--r-lg:26px; --r-md:18px; --r-sm:14px; --tap:56px;
--serif:"Fraunces",Georgia,serif;
--sans:"Inter",system-ui,sans-serif;
--shadow-card:0 8px 22px rgba(120,110,95,.08);
--shadow-soft:0 6px 18px rgba(120,110,95,.06);
}