|
| 1 | +# Hummingbird — Design System |
| 2 | + |
| 3 | +## Source of Truth |
| 4 | + |
| 5 | +The Figma file is the visual reference for all Hummingbird components and pages. |
| 6 | +It is public and open to the community, agencies, and module developers without |
| 7 | +login. |
| 8 | + |
| 9 | +**Figma:** [HUMMINGBIRD — new](https://www.figma.com/design/ZlLqiOjTVXVlVu49sSsD8P/HUMMINGBIRD--new-?node-id=0-1) |
| 10 | +Access: public, read-only. |
| 11 | + |
| 12 | +The file is organized as follows: |
| 13 | + |
| 14 | +- **One Figma page per storefront page** — each contains a `DESKTOP` frame and |
| 15 | + a `MOBILE` frame side by side. |
| 16 | +- **Components** — component library (atoms, molecules, organisms). |
| 17 | +- **Icons** — icon set. |
| 18 | + |
| 19 | +Storefront pages covered: Home, Product, Category, Cart, Checkout, Sign in, |
| 20 | +Contact, Stores, My account, 404. |
| 21 | + |
| 22 | +### Desktop vs. Mobile coverage |
| 23 | + |
| 24 | +| Version | Status | Notes | |
| 25 | +|---------|--------|-------| |
| 26 | +| Desktop ✅ | Complete | All storefront pages designed. Reference for implementation. | |
| 27 | +| Mobile 🏗️ | In progress | Frames exist for all pages but coverage is incomplete. Do not treat mobile frames as final — verify before implementing. | |
| 28 | + |
| 29 | +The Figma is the reference for new component design and for verifying visual |
| 30 | +regressions on desktop. For mobile, align with the desktop Figma intent and flag |
| 31 | +gaps rather than improvising. |
| 32 | + |
| 33 | +## Design System |
| 34 | + |
| 35 | +**Framework:** Bootstrap 5.3.3 |
| 36 | +**Package:** `bootstrap` (npm) |
| 37 | +**Override layer:** `src/scss/bootstrap/overrides/` — Bootstrap variable overrides (loaded before Bootstrap core) |
| 38 | + |
| 39 | +Hummingbird does not ship a standalone design system. Bootstrap 5.3.3 is the |
| 40 | +design system. The theme's role is to customize it as little as possible while |
| 41 | +meeting PrestaShop storefront requirements. Bootstrap styles are fully isolated |
| 42 | +from PrestaShop Core styles. |
| 43 | + |
| 44 | +**Maturity:** Production — this is the shipped default theme for PrestaShop 9.1+. |
| 45 | +Visual regressions and accessibility regressions are treated as bugs. |
| 46 | + |
| 47 | +## Usage Hierarchy |
| 48 | + |
| 49 | +Apply this order when making visual decisions: |
| 50 | + |
| 51 | +1. **Bootstrap native** — use Bootstrap components and utilities as-is when they |
| 52 | + cover the need. |
| 53 | +2. **Bootstrap variable override** — adjust via `src/scss/abstract/variables/` |
| 54 | + (SCSS variable overrides loaded before Bootstrap). |
| 55 | +3. **Custom component** — write new SCSS in `src/scss/core/` following BEM, |
| 56 | + only when Bootstrap cannot cover the need. |
| 57 | + |
| 58 | +For file placement rules, see `CONTEXT.md` § SCSS Architecture. |
| 59 | + |
| 60 | +## Bootstrap customizations |
| 61 | + |
| 62 | +Key divergences from Bootstrap 5.3.3 defaults, defined in |
| 63 | +`src/scss/bootstrap/overrides/variables/_variables.scss`: |
| 64 | + |
| 65 | +- **Colors:** `$primary: #0b69f6`, `$danger: #ff4657` |
| 66 | +- **Typography:** `Inter` as base font family; heading scale recalculated from body font size |
| 67 | +- **Breakpoints:** two extra breakpoints below Bootstrap's `sm` — `xxs: 0` and `xs: 360px` |
| 68 | +- **Links:** `$link-decoration: none` by default |
| 69 | + |
| 70 | +## Accepted overrides |
| 71 | + |
| 72 | +No overrides have been accepted yet. Any observed deviation from the Bootstrap |
| 73 | +customizations above (hardcoded hex values, inline styles, non-BEM class names) |
| 74 | +is migration debt — not a replicable pattern. |
| 75 | + |
| 76 | +✏️ To accept a deviation, document it here with: component or context, reason, |
| 77 | +scope. Owner: Designer or Design Lead. |
0 commit comments