Skip to content

Commit 8293fba

Browse files
authored
Merge pull request #8 from asperpharma/copilot/apply-all-updates-to-main-site
Add deployment infrastructure: scripts and documentation
2 parents 83f79c7 + 8a52cad commit 8293fba

6 files changed

Lines changed: 1262 additions & 1 deletion

File tree

DESIGN_SYSTEM.md

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
# Asper Beauty Shop — Design System
2+
3+
> **"Morning Spa" / Medical Luxury**
4+
> Warm, clinical elegance meets feminine wellness. No cold whites, no stark blacks—only soothing ivory, rose clay, deep burgundy, and polished gold accents.
5+
6+
---
7+
8+
## Brand Identity
9+
10+
**Asper Beauty Shop** is the online home of an Egyptian pharmaceutical beauty brand. Our design conveys:
11+
12+
- **Clinical trust** — Medical authority, dermatologist-approved formulations
13+
- **Feminine warmth** — Soft pinks, terracotta, and nurturing tones
14+
- **Understated luxury** — Muted elegance, never flashy or loud
15+
- **Approachability** — Friendly, confident, and welcoming
16+
17+
---
18+
19+
## Color Palette
20+
21+
All colors below are defined in `tailwind.config.ts` and available via Tailwind utility classes (e.g., `bg-asper-stone`, `text-burgundy`, `border-polished-gold`).
22+
23+
### Primary Canvas — Asper Stone (Warm Ivory / Light Gray)
24+
25+
| Token | Hex | Usage |
26+
|-------|-----|-------|
27+
| `asper-stone` (DEFAULT) | `#F2EFEB` | Main background, cards, sections |
28+
| `asper-stone-light` | `#F8F6F3` | Lightest variant, subtle backgrounds |
29+
| `asper-stone-dark` | `#E8E4DE` | Darker variant for contrast within ivory areas |
30+
31+
**Never use pure white (`#FFF`)** — always prefer `asper-stone` or `polished-white` for a warmer feel.
32+
33+
### Feminine Softness — Rose Clay (Muted Pink / Terracotta)
34+
35+
| Token | Hex | Usage |
36+
|-------|-----|-------|
37+
| `rose-clay` (DEFAULT) | `#C4A494` | Subtle highlights, warm accents, secondary backgrounds |
38+
| `rose-clay-light` | `#D4B8A8` | Very soft pink, hover states, delicate elements |
39+
| `rose-clay-dark` | `#A88B7A` | Deeper terracotta, text on light backgrounds |
40+
41+
Use for:
42+
- Section backgrounds (alternate with asper-stone)
43+
- Soft hover states
44+
- Callout boxes or featured content
45+
- Feminine wellness messaging
46+
47+
### Primary Actions & Authority — Burgundy
48+
49+
| Token | Hex | Usage |
50+
|-------|-----|-------|
51+
| `burgundy` (DEFAULT) | `#6B2D3A` | Primary buttons, CTAs, navigation background |
52+
| `burgundy-light` | `#8B3D4A` | Hover states on burgundy elements |
53+
| `burgundy-dark` | `#4F222C` | Active states, deep emphasis |
54+
55+
Use for:
56+
- Primary CTA buttons ("Add to Cart", "Shop Now")
57+
- Navigation bars and headers
58+
- Emphasis on clinical authority
59+
- Links and active states
60+
61+
### Accent — Polished Gold
62+
63+
| Token | Hex | Usage |
64+
|-------|-----|-------|
65+
| `polished-gold` | `#C9A962` | Borders, icons, "Midas Touch" accents |
66+
67+
Use **sparingly** to add sophistication:
68+
- Icon highlights
69+
- Border accents on hover
70+
- Badges or labels ("Best Seller", "New")
71+
- Decorative elements (never as a primary action color)
72+
73+
### Text — Asper Ink (Soft Black / Charcoal)
74+
75+
| Token | Hex | Usage |
76+
|-------|-----|-------|
77+
| `asper-ink` | `#2C2825` | Primary body text, headings |
78+
| `asper-ink-muted` | `#5C5652` | Secondary text, captions, placeholders |
79+
80+
**Never use pure black (`#000`)** — always prefer `asper-ink` for softer readability.
81+
82+
### Utility
83+
84+
| Token | Hex | Usage |
85+
|-------|-----|-------|
86+
| `polished-white` | `#FAF9F7` | Off-white for cards on colored backgrounds |
87+
88+
---
89+
90+
## Typography
91+
92+
### Font Families
93+
94+
Defined in `tailwind.config.ts`:
95+
96+
- **Headings:** `font-heading` → Playfair Display (serif, elegant)
97+
- **Body:** `font-body` → Montserrat (sans-serif, clean, readable)
98+
- **Arabic support:** `font-arabic` → Tajawal (for bilingual content)
99+
100+
### Usage Guidelines
101+
102+
| Element | Font | Weight | Size (Desktop) | Size (Mobile) | Color |
103+
|---------|------|--------|----------------|---------------|-------|
104+
| Hero Title | Playfair Display | 700 (bold) | 3.5rem | 2.25rem | `asper-ink` |
105+
| Section Headings | Playfair Display | 600 (semibold) | 2.5rem | 1.875rem | `asper-ink` |
106+
| Product Titles | Montserrat | 600 | 1.5rem | 1.25rem | `asper-ink` |
107+
| Body Text | Montserrat | 400 | 1rem | 0.875rem | `asper-ink` |
108+
| Small Print | Montserrat | 400 | 0.875rem | 0.75rem | `asper-ink-muted` |
109+
| Buttons | Montserrat | 600 (semibold) | 1rem | 0.875rem | White on burgundy |
110+
111+
---
112+
113+
## Components
114+
115+
### Buttons
116+
117+
**Primary (Burgundy)**
118+
- Background: `bg-burgundy`
119+
- Text: `text-white`
120+
- Hover: `hover:bg-burgundy-light`
121+
- Border radius: `rounded-md` (8px)
122+
- Padding: `px-6 py-3`
123+
- Font: `font-body font-semibold`
124+
125+
**Secondary (Outlined)**
126+
- Border: `border-2 border-burgundy`
127+
- Text: `text-burgundy`
128+
- Background: `bg-transparent`
129+
- Hover: `hover:bg-burgundy hover:text-white`
130+
131+
**Accent (Gold — use sparingly)**
132+
- Border: `border-2 border-polished-gold`
133+
- Text: `text-asper-ink`
134+
- Background: `bg-transparent`
135+
- Hover: `hover:bg-polished-gold hover:text-white`
136+
137+
### Cards
138+
139+
- Background: `bg-asper-stone` or `bg-polished-white`
140+
- Border: `border border-rose-clay-light` (optional)
141+
- Border radius: `rounded-lg` (12px)
142+
- Shadow: `shadow-sm` or `shadow-maroon-glow`
143+
- Padding: `p-6` (desktop), `p-4` (mobile)
144+
145+
### Navigation
146+
147+
- Background: `bg-burgundy`
148+
- Text: `text-white`
149+
- Active link: `text-polished-gold`
150+
- Hover: `hover:text-polished-gold`
151+
152+
### Product Cards
153+
154+
- Background: `bg-polished-white`
155+
- Image: rounded corners `rounded-t-lg`
156+
- Title: `text-asper-ink font-body font-semibold`
157+
- Price: `text-burgundy font-semibold text-lg`
158+
- CTA button: Primary burgundy button
159+
160+
### Inputs
161+
162+
- Background: `bg-white` or `bg-polished-white`
163+
- Border: `border border-rose-clay`
164+
- Focus: `focus:ring-2 focus:ring-polished-gold focus:border-polished-gold`
165+
- Text: `text-asper-ink`
166+
- Placeholder: `placeholder:text-asper-ink-muted`
167+
168+
---
169+
170+
## Spacing & Layout
171+
172+
Use Tailwind's spacing scale with these conventions:
173+
174+
- **Section padding:** `py-16` (desktop), `py-12` (mobile)
175+
- **Container max-width:** `max-w-7xl`
176+
- **Grid gaps:** `gap-6` (desktop), `gap-4` (mobile)
177+
- **Component spacing:** Use consistent `space-y-4` or `space-y-6` for vertical rhythm
178+
179+
---
180+
181+
## Shadows
182+
183+
Custom shadows defined in `tailwind.config.ts`:
184+
185+
- **Subtle elevation:** `shadow-sm`
186+
- **Maroon glow (cards, buttons on hover):** `shadow-maroon-glow`
187+
- **Deep emphasis (modals, dropdowns):** `shadow-maroon-deep`
188+
189+
---
190+
191+
## Animations
192+
193+
All animations use the custom `luxury` easing: `cubic-bezier(0.19, 1, 0.22, 1)`
194+
195+
Available utility classes:
196+
- `animate-fade-in` — Fade in with slight upward movement (0.6s)
197+
- `animate-fade-up` — Fade in with pronounced upward movement
198+
- `animate-shake` — Shake animation for errors or emphasis
199+
- `animate-skeleton-breathe` — Breathing animation for loading skeletons
200+
201+
---
202+
203+
## Accessibility
204+
205+
- **Contrast:** All text colors meet WCAG AA standards against their backgrounds
206+
- **Focus states:** All interactive elements have visible focus rings (`focus:ring-2 focus:ring-polished-gold`)
207+
- **Touch targets:** Minimum 44×44px for mobile
208+
- **Semantic HTML:** Use proper heading hierarchy (`h1``h6`), landmarks (`<nav>`, `<main>`, `<footer>`)
209+
210+
---
211+
212+
## Implementation Checklist
213+
214+
When building new components or pages:
215+
216+
- [ ] Use only the approved color palette (no pure white/black)
217+
- [ ] Apply `font-heading` to titles and `font-body` to body text
218+
- [ ] Use `rounded-md` or `rounded-lg` for border radius
219+
- [ ] Add shadows with `shadow-maroon-glow` for cards
220+
- [ ] Ensure all interactive elements have hover and focus states
221+
- [ ] Test on mobile (responsive spacing and typography)
222+
- [ ] Verify contrast ratios for accessibility
223+
224+
---
225+
226+
## Quick Reference
227+
228+
```html
229+
<!-- Example: Primary CTA Button -->
230+
<button class="bg-burgundy text-white px-6 py-3 rounded-md font-body font-semibold hover:bg-burgundy-light transition-colors">
231+
Add to Cart
232+
</button>
233+
234+
<!-- Example: Product Card -->
235+
<div class="bg-polished-white rounded-lg shadow-maroon-glow overflow-hidden">
236+
<img src="..." alt="..." class="w-full h-48 object-cover rounded-t-lg">
237+
<div class="p-4 space-y-2">
238+
<h3 class="text-asper-ink font-body font-semibold text-lg">Product Name</h3>
239+
<p class="text-asper-ink-muted text-sm">Short description...</p>
240+
<p class="text-burgundy font-semibold text-lg">€25.99</p>
241+
</div>
242+
</div>
243+
244+
<!-- Example: Section with Warm Background -->
245+
<section class="bg-rose-clay-light py-16">
246+
<div class="container max-w-7xl mx-auto px-4">
247+
<h2 class="font-heading text-4xl text-asper-ink mb-8">Discover Your Ritual</h2>
248+
<!-- Content -->
249+
</div>
250+
</section>
251+
```
252+
253+
---
254+
255+
**Last updated:** February 2026
256+
**Contact:** Design Team — [Lovable Project](https://lovable.dev/projects/657fb572-13a5-4a3e-bac9-184d39fdf7e6)

0 commit comments

Comments
 (0)