Shine Shop · Design System
Internal reference · noindex · updated May 2026

Shine Shop Design System

The single source of truth for colors, type, spacing, and components on shinemusicshop.com. Use this page as the reference before writing styles — do not invent new values, and do not reach for inline styles when a token exists.

Theme: shine-sales-v2 Font: Inter Brand: #27c100 Grid: 8pt Min tap target: 44px
01

Colors

Semantic tokens always win. Reach for primitives only when defining a new semantic token. All values live in _design-tokens.scss.

Brand & CTA

--color-brand-primary #27c100
--color-cta-primary-hover #32dd07

Neutrals

--color-neutral-900 #222
--color-neutral-800 #2d2a2a
--color-neutral-600 #666666
--color-neutral-400 #aaaaaa
--color-neutral-200 #dddddd
--color-neutral-100 #eeeeee
--color-neutral-50 #f8f8f8
--color-white #ffffff

Semantic

--color-success #27c100
--color-price #27c100
--color-error #ff0000
--color-text-primary #222
--color-text-secondary #666666
--color-text-muted #aaaaaa

Condition Grades

New
--color-condition-new #1a8f00
Excellent
--color-condition-excellent #0891b2
Very Good
--color-condition-very-good #b45309
Good
--color-condition-good #64748b
02

Typography

Single family: Inter. The scale is fluid (clamp()) so sizes flex between mobile and desktop automatically. Never hard-code a font-size.

Display — Inter 800
--font-size-display
28 → 42px
H1 Heading — Inter 700
--font-size-h1
24 → 36px
H2 Section — Inter 700
--font-size-h2
20 → 28px
H3 Subsection — Inter 600
--font-size-h3
16 → 20px
Body paragraph text — Inter 400. This is what most copy on the site should use.
--font-size-body
14 → 16px
Body small — supporting copy, metadata, captions.
--font-size-body-sm
12 → 14px
Label — Uppercase Meta
--font-size-label
11 → 12px
€499 — Price
--font-size-price
18 → 24px

Weights

Regular 400
Medium 500
Semibold 600
Bold 700
Extra Bold 800
03

Spacing Scale

Built on an 8px grid (4px half-step for tight work). Never use a gap/margin/padding value that isn't on this scale.

--space-xs
4px
--space-sm
8px
--space-md
16px
--space-lg
24px
--space-xl
32px
--space-2xl
48px
--space-3xl
64px
--space-4xl
96px
04

Border Radius

Four tokens. Default is --radius-md. Reach for --radius-pill only on chips, tags, and badges.

4px
--radius-sm
8px
--radius-md
12px
--radius-lg
pill
--radius-pill
05

Shadows & Elevation

Use sparingly. Most surfaces should sit flat on page background. Card hover uses --shadow-card-hover; modals/drawers use --shadow-lg.

sm
--shadow-sm
card
--shadow-card
md
--shadow-md
card hover
--shadow-card-hover
lg
--shadow-lg
06

Breakpoints

Bootstrap-style tiers live in _variables.scss. Use the media-breakpoint-up() / media-breakpoint-down() mixins in SCSS rather than raw @media.

NameMin widthSCSS varTypical use
xs0$xsMobile portrait — design baseline
sm576px$smLarge phone / small tablet portrait
md768px$mdTablet — mobile container padding ends here (16 → 25px)
lg992px$lgDesktop threshold — sidebar layouts unlock
xl1200px$xlStandard desktop
xxl1600px$xxlWide desktop — max content widths cap here
// SCSS — preferred
@include media-breakpoint-down(md) {
  padding: var(--space-md);
}
@include media-breakpoint-up(lg) {
  padding: var(--space-xl);
}
07

Buttons

Primary = green CTA for the most important action on screen (one per view). Secondary = dark, supporting action. Outline = low-emphasis. Minimum height 44px on mobile.

In the theme, these render via .button.button_background_color_green.button_color_white. New code should use the .button component class, not re-style <a> tags.

08

Condition Badges

Four grades only: New, Excellent, Very Good, Good. Never invent a fifth. Use subtle variants on cards, solid variants on product hero.

Solid — Small

New Excellent Very Good Good

Solid — Medium

New Excellent Very Good Good

Subtle

New Excellent Very Good Good
09

Price Display

Prices are always green (--color-price), bold, tabular-aligned. Sale prices use strike-through on the original.

Regular
€499
On Sale
€699 €499
From
from €299
10

Form Inputs

All inputs: 44px min-height, 8px radius, 1px border, green focus ring. Labels above, helper text below.

11

Notices & Alerts

Three variants: success, error, info. Always with an icon. Never use raw red text.

Added to cart. Your item is waiting in the basket.
!
Payment failed. Please check your card details and try again.
i
Free delivery on orders over €100 within Ireland.
12

Product Cards

The product card is the fundamental commerce unit. Image top, condition badge overlay, title, price. Never stack more than one line of metadata below the price.

Excellent

Fender Player Stratocaster Sunburst

€599
New

Yamaha P-125 Digital Piano

€749
Good

Roland TD-1KV Electronic Drum Kit

€499 €399