DesignMD Maker logo ← Home Report · Code analysis
Y
Design System

Your Reliable Real Estate Developer in Cebu - Primary Homes Inc.

Design system extracted from https://primaryhomes.com/ on 2026-08-13 (code-based analysis).

Source · https://primaryhomes.com/ Engine · Code analysis Created · Aug 13, 2026 06:27 Cost · $0.0000
Detected Language

Design Style

gradient-rich / aurora
many gradient definitions
rounded / pill-heavy
many large radii & pills
Palette

Colors

primary
#248A60
4.3 on white · 4.88 on black · 155° 59% 34%
secondary
#000000
21 on white · 1 on black · 0° 0% 0%
accent
#FF4343
3.42 on white · 6.14 on black · 0° 100% 63%
Token Roles 13 tokens
background
#FFFFFF · 21:1 vs black
surface
#FFFAF0 · 20.18:1 vs black
text-primary
#000000 · 21:1 vs white
text-secondary
#A5AF44 · 2.38:1 vs white
border
#616161 · 6.19:1 vs white
on-primary
#FFFFFF · 21:1 vs black
on-secondary
#FFFFFF · 21:1 vs black
on-accent
#FFFFFF · 21:1 vs black
surface-container-lowest
#FFFFFF · 21:1 vs black
surface-container-low
#F7F7F7 · 19.6:1 vs black
surface-container
#F5F5F5 · 19.26:1 vs black
surface-container-high
#F2F2F2 · 18.76:1 vs black
surface-container-highest
#EEEEEE · 18.1:1 vs black
Detected Palette 24 colors by frequency in source CSS
#FFFFFF
used 99× · 0° 0% 100%
#000000
used 63× · 0° 0% 0%
#248A60
used 53× · 155° 59% 34%
#212121
used 29× · 0° 0% 13%
#FF4343
used 17× · 0° 100% 63%
#A5AF44
used 15× · 66° 44% 48%
#616161
used 14× · 0° 0% 38%
#CCCCCC
used 11× · 0° 0% 80%
#DDDDDD
used 11× · 0° 0% 87%
#F58228
used 10× · 26° 91% 56%
#5D3F2E
used 9× · 22° 34% 27%
#6A75CA
used 9× · 233° 48% 60%
#909090
used 7× · 0° 0% 56%
#20552B
used 7× · 132° 45% 23%
#262223
used 5× · 345° 6% 14%
#B7B7B7
used 5× · 0° 0% 72%
#FFFAF0
used 5× · 40° 100% 97%
#B7B6B6
used 3× · 0° 1% 72%
#EE6730
used 3× · 17° 85% 56%
#C3C3C3
used 3× · 0° 0% 76%
#FFF5E2
used 3× · 39° 100% 94%
#1E1E1E
used 2× · 0° 0% 12%
#888888
used 2× · 0° 0% 53%
#F2F2F2
used 2× · 0° 0% 95%
Surface Treatments

Gradients

linear-gradient(bottom, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.15) 65%, rgba(0, 0, 0, 0.075) 75.5%, rgba(0, 0, 0, 0.037) 82.85%, rgba(0, 0, 0, 0.019) 88%, transparent)
linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.15) 65%, rgba(0, 0, 0, 0.075) 75.5%, rgba(0, 0, 0, 0.037) 82.85%, rgba(0, 0, 0, 0.019) 88%, transparent)
linear-gradient(top, #fffaf0, #ffffff)
linear-gradient(to bottom, #fffaf0, #ffffff)
linear-gradient(45deg, black 0%, rgba(0, 0, 0, 0.95) 31%, rgba(0, 0, 0, 0.93) 32%, rgba(195, 195, 195, 0) 84%, rgba(255, 255, 255, 0) 100%)
linear-gradient(135deg, floralwhite 0%, rgba(255, 250, 240, 0.485032) 100%)
Type System

Typography

display
inherit
48px · 300 · LH 1
Your Reliable Real Estate Developer in Cebu - Primary Homes Inc.
headline-lg
inherit
40px · 300 · LH 1
Your Reliable Real Estate Developer in Cebu - Primary Homes Inc.
headline-md
inherit
28px · 300 · LH 1
Your Reliable Real Estate Developer in Cebu - Primary Homes Inc.
title-lg
inherit
20px · 300 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
body-lg
inherit
18px · 300 · LH 1.38
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
body-md
inherit
16px · 300 · LH 1.38
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-md
inherit
14px · 300 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
label-sm
inherit
12px · 300 · LH 1.4
Typography is the discipline of rendering language visible. Spacing, weight, and rhythm carry meaning long before words are read.
Detected Font Stacks
'Montserrat'"MyriadPro", Helvetica, Arial, sans-serif"HarabaraHand", Helvetica, Arial, sans-serif'Didact Gothic'"TrajanPro", Helvetica, Arial, sans-serif'MyriadPro''TrajanPro'"icomoon" !important
Structure

Layout

Container
Section padding: · card padding:
Grid
12-column reference grid · gap
Spacing Scale
xs
2px
sm
8px
md
20px
lg
40px
xl
80px
detected
2px
detected
5px
detected
7px
detected
8px
detected
10px
detected
13px
detected
15px
detected
20px
detected
23px
detected
30px
Breakpoints
376px480px640px767px991px1024px1200px1280px
Depth

Elevation & Depth

level 1
0 3px 6px 0 rgba(0, 0, 0, 0.16)
level 2
0 1px 2px rgba(0, 0, 0, 0.1) inset
level 3
0 3px 6px 0 rgba(0, 0, 0, 0.1)
level 4
0 6px 6px 0 rgba(0, 0, 0, 0.16)
level 5
0 -3px 6px 0 rgba(0, 0, 0, 0.1)
level 6
-3px 0px 6px 0 rgba(0, 0, 0, 0.16)
Geometry

Shapes

sm
2px
md
10px
lg
25px
pill
50%
r5
50px
r6
4px
r7
100%
r8
3px
Tokens in Context

Components

card
background{colors.surface}
border1px solid {colors.border}
radius25px
boxShadow{elevation.md}
button-primary
background{colors.primary}
radius50%
Animation

Motion

Keyframes 10 found
@keyframes a
to {-webkit-transform: rotate(1turn);transform: rotate(1turn);}
@keyframes fadeOut
0% {opacity: 1;}100% {opacity: 0;}
@keyframes wave
from {-webkit-transform: translateY(-100%);-ms-transform: translateY(-100%);transform: translateY(-100%);}to {-webkit-transform: translateY(100%);-ms-transform: translateY(100%);transform: translateY(100%);}
@keyframes fadeIn
0% {opacity: 0;}100% {opacity: 1;}
@keyframes fadeInDown
0% {opacity: 0;-webkit-transform: translateY(-20px);-ms-transform: translateY(-20px);transform: translateY(-20px);}100% {opacity: 1;-webkit-transform: translateY(0);-ms-transform: translateY(0);transform: translateY(0);}
@keyframes fadeInLeft
0% {opacity: 0;-webkit-transform: translateX(-20px);-ms-transform: translateX(-20px);transform: translateX(-20px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);}
@keyframes fadeInLeftBig
0% {opacity: 0;-webkit-transform: translateX(-2000px);-ms-transform: translateX(-2000px);transform: translateX(-2000px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);}
@keyframes fadeInRight
0% {opacity: 0;-webkit-transform: translateX(20px);-ms-transform: translateX(20px);transform: translateX(20px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);}
@keyframes fadeInRightBig
0% {opacity: 0;-webkit-transform: translateX(2000px);-ms-transform: translateX(2000px);transform: translateX(2000px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);}
Applied Animations
a 1s linear infinite
Easing Curves
cubic-bezier(0.47, 0, 0.74, 0.71) cubic-bezier(0.22, 0.61, 0.36, 1) cubic-bezier(0, 0, 0.25, 1)cubic-bezier(0.645, 0.045, 0.355, 1)cubic-bezier(0.86, 0, 0.07, 1)
Transitions
opacity 0.25s ease, visibility 0s ease 0.25sopacity 0.25s ease 0s, visibility 0s ease 0scolor 0.2sheight 500ms ease-in-outopacity 400ms easeall 0.4s cubic-bezier(0.645, 0.045, 0.355, 1)padding 0.4s cubic-bezier(0.645, 0.045, 0.355, 1)transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s ease
Proof

Live Preview

Complete Reference

Full design.md Specification

Design Specification — Your Reliable Real Estate Developer in Cebu - Primary Homes Inc.

FieldValue
Site / Projecthttps://primaryhomes.com/
Analyzed on2026-08-13
Analysis modeAutomated code extraction (no AI)

Overview

This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#FF4343). All type is set in 'Montserrat'. Detected font weights: 300, 400, 500, 600, 700, 900. Detected style signatures: gradient-rich / aurora; rounded / pill-heavy.

Logo asset(s): https://primaryhomes.com/uploads/media/logo@2x.png · https://primaryhomes.com/uploads/media/silingan-logo.svg

Color System

Detected palette (by frequency)

HexRGBHSLCount
#FFFFFF255, 255, 2550° 0% 100%99
#0000000, 0, 00° 0% 0%63
#248A6036, 138, 96155° 59% 34%53
#21212133, 33, 330° 0% 13%29
#FF4343255, 67, 670° 100% 63%17
#A5AF44165, 175, 6866° 44% 48%15
#61616197, 97, 970° 0% 38%14
#CCCCCC204, 204, 2040° 0% 80%11
#DDDDDD221, 221, 2210° 0% 87%11
#F58228245, 130, 4026° 91% 56%10
#5D3F2E93, 63, 4622° 34% 27%9
#6A75CA106, 117, 202233° 48% 60%9
#909090144, 144, 1440° 0% 56%7
#20552B32, 85, 43132° 45% 23%7
#26222338, 34, 35345° 6% 14%5
#B7B7B7183, 183, 1830° 0% 72%5
#FFFAF0255, 250, 24040° 100% 97%5
#B7B6B6183, 182, 1820° 1% 72%3
#EE6730238, 103, 4817° 85% 56%3
#C3C3C3195, 195, 1950° 0% 76%3

Assigned roles

Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.

TokenHexRGBHSL
--color-primary#248A6036, 138, 96155° 59% 34%
--color-accent#FF4343255, 67, 670° 100% 63%
--color-background#FFFFFF255, 255, 2550° 0% 100%
--color-surface#FFFAF0255, 250, 24040° 100% 97%
--color-text-primary#0000000, 0, 00° 0% 0%
--color-secondary#0000000, 0, 00° 0% 0%
--color-text-secondary#A5AF44165, 175, 6866° 44% 48%
--color-border#61616197, 97, 970° 0% 38%
--color-on-primary#FFFFFF255, 255, 2550° 0% 100%
--color-on-secondary#FFFFFF255, 255, 2550° 0% 100%
--color-on-accent#FFFFFF255, 255, 2550° 0% 100%

Surface ramp (derived from detected light neutrals)

TokenHex
--color-surface-container-lowest#FFFFFF
--color-surface-container-low#F7F7F7
--color-surface-container#F5F5F5
--color-surface-container-high#F2F2F2
--color-surface-container-highest#EEEEEE

Gradients

  • linear-gradient(bottom, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.15) 65%, rgba(0, 0, 0, 0.075) 75.5%, rgba(0, 0, 0, 0.037) 82.85%, rgba(0, 0, 0, 0.019) 88%, transparent)
  • linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.15) 65%, rgba(0, 0, 0, 0.075) 75.5%, rgba(0, 0, 0, 0.037) 82.85%, rgba(0, 0, 0, 0.019) 88%, transparent)
  • linear-gradient(top, #fffaf0, #ffffff)
  • linear-gradient(to bottom, #fffaf0, #ffffff)
  • linear-gradient(45deg, black 0%, rgba(0, 0, 0, 0.95) 31%, rgba(0, 0, 0, 0.93) 32%, rgba(195, 195, 195, 0) 84%, rgba(255, 255, 255, 0) 100%)
  • linear-gradient(135deg, floralwhite 0%, rgba(255, 250, 240, 0.485032) 100%)
  • linear-gradient(315deg, floralwhite 0%, rgba(255, 250, 240, 0.485032) 100%)
  • linear-gradient(top, rgba(165, 175, 68, 0) 17%, #a5af44 30%, #a5af44 82%, #a5af44)
  • linear-gradient(to bottom, rgba(165, 175, 68, 0) 17%, #a5af44 30%, #a5af44 82%, #a5af44)
  • linear-gradient(left, #ffffff, #ffffff 31%, rgba(165, 175, 68, 0))

> 1 additional gradient definitions were framework utility templates (unresolvable var(--tw-gradient-stops)) and were omitted.

Typography

Primary typeface: Montserrat — stack: 'Montserrat'

Font stacks (most used first)

  • 'Montserrat'
  • "MyriadPro", Helvetica, Arial, sans-serif
  • "HarabaraHand", Helvetica, Arial, sans-serif
  • 'Didact Gothic'
  • "TrajanPro", Helvetica, Arial, sans-serif
  • 'MyriadPro'
  • 'TrajanPro'
  • "icomoon" !important
  • 'LatoBold'
  • 'icomoon'

Web font sources

  • fonts.googleapis.com/css?family=Didact+Gothic&display=swap
  • fonts.googleapis.com/css?family=Montserrat:400,600,700,900&display=swap

Derived type scale

TokenSize
display48px
headline-lg40px
headline-md28px
title-lg20px
body-lg18px
body-md16px
label-md14px
label-sm12px

Font sizes (by frequency)

SizeCount
1rem27
0.875rem14
0.75rem7
1.125rem6
14px6
1.25rem5
1.5rem4
15px4
12px4
2.375rem3
2rem3
1.75rem3
0.625rem3
2.5rem2
16px2
28px2
3rem2
13px1
0.5rem1
24px1

Weights in use: 300, 400, 500, 600, 700, 900

Line heights (by frequency)

ValueCount
112
1.3810
1.58
1.336
1.45
1.262
1.252
44px1
20px1
01

Spacing

Derived spacing scale

TokenValue
xs2px
sm8px
md20px
lg40px
xl80px

Raw values (by frequency)

ValueCount
15px13
20px12
10px10
8px8
40px4
2px4
5px4
80px4
30px4
31px2
0px2
23px2
13px2
100px2
44px1
7px1

Borders & Radius

Derived radius tokens

TokenValue
sm2px
md10px
lg25px
pill50%

Raw values (resolved, by frequency)

RadiusCount
09
50px8
4px7
50%5
10px4
2px2
0 0 4px 4px2
100%2
0 0 2px 2px1
10px 0 0 10px1
25px1
3px1

Shadows

Derived elevation

TokenValue
sm0 3px 6px 0 rgba(0, 0, 0, 0.16)
md0 -3px 6px 0 rgba(0, 0, 0, 0.1)
lg-3px 0px 6px 0 rgba(0, 0, 0, 0.16)

All detected shadows

  • 0 3px 6px 0 rgba(0, 0, 0, 0.16)
  • 0 1px 2px rgba(0, 0, 0, 0.1) inset
  • 0 3px 6px 0 rgba(0, 0, 0, 0.1)
  • 0 6px 6px 0 rgba(0, 0, 0, 0.16)
  • 0 -3px 6px 0 rgba(0, 0, 0, 0.1)
  • -3px 0px 6px 0 rgba(0, 0, 0, 0.16)
  • unset
  • 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white

Layout

Container max-width: 767px

Breakpoints

  • 376px
  • 480px
  • 640px
  • 767px
  • 991px
  • 1024px
  • 1200px
  • 1280px

Animation & Motion

Transitions

  • opacity 0.25s ease, visibility 0s ease 0.25s
  • opacity 0.25s ease 0s, visibility 0s ease 0s
  • color 0.2s
  • height 500ms ease-in-out
  • opacity 400ms ease
  • all 0.4s cubic-bezier(0.645, 0.045, 0.355, 1)
  • padding 0.4s cubic-bezier(0.645, 0.045, 0.355, 1)
  • transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s ease
  • opacity 0.2s ease, -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1)
  • transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.2s ease, -webkit-transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1)
  • all 0.4s
  • transform 0.5s ease

Easing curves

  • cubic-bezier(0.47, 0, 0.74, 0.71)
  • cubic-bezier(0.22, 0.61, 0.36, 1)
  • cubic-bezier(0, 0, 0.25, 1)
  • cubic-bezier(0.645, 0.045, 0.355, 1)
  • cubic-bezier(0.86, 0, 0.07, 1)

Keyframes

@keyframes a { to {-webkit-transform: rotate(1turn);transform: rotate(1turn);} }
@keyframes fadeOut { 0% {opacity: 1;}100% {opacity: 0;} }
@keyframes wave { from {-webkit-transform: translateY(-100%);-ms-transform: translateY(-100%);transform: translateY(-100%);}to {-webkit-transform: translateY(100%);-ms-transform: translateY(100%);transform: translateY(100%);} }
@keyframes fadeIn { 0% {opacity: 0;}100% {opacity: 1;} }
@keyframes fadeInDown { 0% {opacity: 0;-webkit-transform: translateY(-20px);-ms-transform: translateY(-20px);transform: translateY(-20px);}100% {opacity: 1;-webkit-transform: translateY(0);-ms-transform: translateY(0);transform: translateY(0);} }
@keyframes fadeInLeft { 0% {opacity: 0;-webkit-transform: translateX(-20px);-ms-transform: translateX(-20px);transform: translateX(-20px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);} }
@keyframes fadeInLeftBig { 0% {opacity: 0;-webkit-transform: translateX(-2000px);-ms-transform: translateX(-2000px);transform: translateX(-2000px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);} }
@keyframes fadeInRight { 0% {opacity: 0;-webkit-transform: translateX(20px);-ms-transform: translateX(20px);transform: translateX(20px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);} }
@keyframes fadeInRightBig { 0% {opacity: 0;-webkit-transform: translateX(2000px);-ms-transform: translateX(2000px);transform: translateX(2000px);}100% {opacity: 1;-webkit-transform: translateX(0);-ms-transform: translateX(0);transform: translateX(0);} }
@keyframes fadeInUp { 0% {opacity: 0;-webkit-transform: translateY(20px);-ms-transform: translateY(20px);transform: translateY(20px);}100% {opacity: 1;-webkit-transform: translateY(0);-ms-transform: translateY(0);transform: translateY(0);} }

Animations

  • a 1s linear infinite

CTA labels found on page

  • Schedule Tour
  • Search
  • Contact Us
  • Visit Royal Palms Bohol
  • Visit Royal Oceancrest Mactan 2

Source Design Tokens (CSS custom properties)

:root {
  --thumbs: :before, .fancybox-button.fancybox-button--zoom::before, .fancybox-button.fancybox-button--close::before;
  --close: before;
  --zoom: before;
  --arrow_left: :before;
  --arrow_right: :before;
  --desk: hover, .menu-dropdown .container .dp-close--desk:active;
  --home: hover, .fixedlinks .mobilelinks--home:active, .fixedlinks .mobilelinks--contact:hover, .fixedlinks .mobilelinks--contact:active;
  --schedule: hover, .fixedlinks .mobilelinks--schedule:active;
  --search: hover, .fixedlinks .mobilelinks--search:active;
  --secondary: hover, .button--primary:hover;
  --primary: hover;
  --red: :before;
  --green: :before, .card-item--pr .progress__bar--green::after;
  --special: :before;
  --reverse-white: :before;
  --reverse-yellow: :before;
  --white: :after;
}

Do's and Don'ts

Do

  • Do reserve the accent #FF4343 for interactive highlights and key moments — it is used sparingly on the source page.
  • Do keep the canvas at #FFFFFF; surfaces should stay within the detected neutral ramp.
  • Do stick to the detected font weight(s): 300, 400, 500, 600, 700, 900.

Don't

  • Don't introduce colors outside the detected palette — every hue above was found in the source.

Design Tokens (copy-paste)

:root {
  --color-primary: #248A60;
  --color-accent: #FF4343;
  --color-background: #FFFFFF;
  --color-surface: #FFFAF0;
  --color-text-primary: #000000;
  --color-secondary: #000000;
  --color-text-secondary: #A5AF44;
  --color-border: #616161;
  --color-on-primary: #FFFFFF;
  --color-on-secondary: #FFFFFF;
  --color-on-accent: #FFFFFF;
  --color-surface-container-lowest: #FFFFFF;
  --color-surface-container-low: #F7F7F7;
  --color-surface-container: #F5F5F5;
  --color-surface-container-high: #F2F2F2;
  --color-surface-container-highest: #EEEEEE;
  --font-sans: 'Montserrat';
  --font-size-display: 48px;
  --font-size-headline-lg: 40px;
  --font-size-headline-md: 28px;
  --font-size-title-lg: 20px;
  --font-size-body-lg: 18px;
  --font-size-body-md: 16px;
  --font-size-label-md: 14px;
  --font-size-label-sm: 12px;
  --radius-sm: 2px;
  --radius-md: 10px;
  --radius-lg: 25px;
  --radius-pill: 50%;
  --shadow-sm: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
  --shadow-md: 0 -3px 6px 0 rgba(0, 0, 0, 0.1);
  --shadow-lg: -3px 0px 6px 0 rgba(0, 0, 0, 0.16);
  --space-xs: 2px;
  --space-sm: 8px;
  --space-md: 20px;
  --space-lg: 40px;
  --space-xl: 80px;
  --container-max: 767px;
}