ParagonCorp
COLOR INTELLIGENCE PLATFORM

One colour truth for every lip shade.

Browse the whole lip catalogue, generate a shade map in one sitting, and track portfolio gaps as prototypes.

Paragon
PARAGON
Color Bank & Shade Mapping Hub
Welcome back.
Continue with your ParagonCorp account.
PROTOTYPE ONLY
{{ p.initials }}
{{ p.name }}
{{ p.desc }}
{{ p.role }}
Roles are verified against the HR directory through SSO and SCIM. Sensitive roles cannot be self-assigned.
Paragon
PARAGON
Color Bank & Shade Mapping Hub
{{ access.greeting }}
Here is what your account can reach. You do not need to choose anything.
{{ user.initials }}
{{ user.name }}
{{ user.email }}
SSO verified {{ role }}
YOU CAN
{{ c.t }}
{{ c.d }}
YOU CANNOT
{{ c.t }}
{{ c.d }}
Nothing is restricted for this role.
Request a role change×
Submitting writes a RoleRequest with your SSO identity and timestamp. You keep {{ role }} access until it is approved.
{{ pageTitle }}{{ pageSub }}
{{ t.l }}
?
{{ user.name }}{{ role }}

Next up

The colour workflow, left to right. Your step is marked.
{{ f.i }}{{ f.t }}
{{ f.n }}
{{ f.l }}
YOUR STEP
{{ pendingRoles }}role requests waiting for your approval. Users cannot work until confirmed.Open User Management →
{{ c.n }}{{ c.t }}· {{ c.l }}
Season coverage{{ dbSub }} · {{ seasonTotal }} sample shades
{{ s.se }}
{{ s.n }} · {{ s.pct }}
Each segment is one shade in the sample set, ordered light to deep. Thin seasons are candidates for Color Bank requests.
Color Bank requestsColor Bank →
{{ p.sg }}{{ p.n }}
Recent activityaudit log
{{ a.t }}
{{ a.actor }} · {{ a.action }}{{ a.detail }}
Pinned mappingsAll mappings →
{{ m.name }}{{ m.format }} · {{ m.n }} shades · {{ m.date }}
{{ dbFormat }} · {{ dbBase }}

{{ dbSub }}

{{ dbShownLabel }}
Ground
{{ k.n }} {{ k.t }}
/
Filter shades
{{ dbMatchN }} shades match
Loading the colour database
{{ c.label }}{{ c.arrow }}
{{ s.brand }} {{ s.product }}
{{ s.shade }}{{ s.hex }}
{{ s.undertone }} {{ s.season }} {{ s.family }} {{ s.value }} {{ s.chroma }} benchmarked {{ s.hue }}° {{ s.light }} {{ s.sat }}
{{ dbEmptyTitle }}
{{ dbEmptyBody }}
{{ dbPager.range }} of {{ dbPager.total }} shades
{{ i.l }}
Ground
view photo
{{ m.l }}
SummerSpringWinterAutumn LIGHTDEEPCOOLWARM {{ t.l }} {{ t.l }} Lhue°
LIGHT · centre 315° pink · cool0° red · neutral30° brown · warmouter ring = deep
{{ p.shade }}
{{ p.label }}{{ p.hex }} · {{ p.undertone }} · {{ p.season }} · {{ p.family }}H {{ p.hue }}° · L {{ p.light }} · S {{ p.sat }}
{{ p.hue }}° / {{ p.light }} ×{{ p.stackN }}
DEPTH
{{ gf.f }}
{{ gt.t }}
{{ gr.L }}L {{ gr.range }}
+{{ gc.moreN }} +
Every cell has a name. An empty one is a portfolio gap you can say out loud. +click an empty cell to open a Color Bank request for it
{{ g.f }}light → deep
{{ s.shade }}
{{ s.brand }} · L {{ s.light }}
{{ emptyTitle }}
{{ emptyBody }}
Or tick SKUs in the list on the left.
{{ mapComplete }}· {{ mpSub }} only · click a pin for detail · Esc closes axes cross at hue 0 / L 50 — a pin's quadrant is its season ×n{{ stackNote }}
values reset + ⛶ full screen save ↓ download
Operations

My Mappings

{{ mmShownLabel }}
{{ t.t }} {{ t.n }}
By format {{ f.t }} {{ f.n }}
By brand {{ b.t }} {{ b.n }}
shades counted across the mappings shown
Pinned
{{ m.name }}
{{ m.format }} · {{ m.mode }} · {{ m.n }} shades
{{ m.brands }}
{{ m.owner }} · {{ m.date }}OpenRename{{ m.pinLabel }}Delete
Showing {{ mmRange }} mappings page {{ mmPage }} of {{ mmPages }}
Operations

Prototype shades

{{ cbShownLabel }}
{{ c.t }}
{{ r.shade }} · {{ r.brand }} {{ r.product }}
{{ r.type }} · {{ r.ref }}
{{ r.role }} {{ r.stage }} {{ r.priority }} priority {{ r.date }}

{{ req.shade }}

{{ req.brand }} {{ req.product }} · {{ req.type }} · {{ req.hex }}
{{ req.stage }} {{ req.priority }} priority {{ req.season }}
Prototype workflow
{{ s.mark }} {{ s.s }} {{ s.note }}
Declined — closed with a note visible to the requester
Target and result
Target · {{ req.hex }}
Prototype result
Prototype on lipslab result · simulated
Result photo · uploaded by the admin when formulating is done
Upload
on-lips photo
Upload
flat swatch
Result / notes{{ req.result }}
Colour compositionRnD only
{{ c.n }}
{{ c.v }}%
Base used: {{ req.brand }} {{ req.product }}
+ Add ingredient+ Add base information
Request
Requested by{{ req.requester }} ({{ req.role }}) Date{{ req.date }} Type{{ req.type }} Target HEX{{ req.hex }} Reference{{ req.ref }}
Admin actions

Every action here writes an audit event with your name and timestamp.

Awaiting Website Admin review · target 3 working days, High priority first.
New prototype request
Requester {{ user.name }} · {{ role }} captured from SSO
Derived from HEX
{{ draft.preview }}
Operations

Reports

{{ repShownLabel }}
{{ t.t }} {{ t.n }}
{{ r.type }}{{ r.item }}
{{ r.desc }}
{{ r.reporter }} {{ r.role }} · {{ r.time }}
{{ r.priority }} {{ r.state }}
Reports are triaged weekly. Resolution notes are visible to the reporter.page 1 of 1
{{ diTitle }}
{{ diLede }}
Step 1 · Paste Excel data here
Preview{{ previewCount }} rowsAll colour fields auto-calculated {{ invalid }} row(s) need a fix before import
#BrandProductShadeHEXUndertone AUTOSeason AUTOFamily AUTOValue AUTOChroma AUTOFlagStatus
{{ r.i }}{{ r.brand }}{{ r.product }}{{ r.shade }}{{ r.hex }}{{ r.ut.t }}{{ r.se.t }}{{ r.family }}{{ r.value }}{{ r.chroma }}benchmarked{{ r.status }}
Required before Import; stored per record.
1 Upload2 Map columns3 Validate4 Preview & import
Drop an .xlsx file here
Max 20 MB · first sheet with a header row · columns mapped step by step next
Derived values preview appears here as soon as a valid HEX is entered. Undertone, season, family, value, chroma and depth are calculated, never typed.
!Both photos are required by the client mock-up, and both are unpriced. At {{ countRfp }} shades that is {{ countRfp }} paired shoots; at {{ countMockup }} it is nearly double. Externally sourced images raise a rights question as well as a consistency one. Either Paragon owns this programme or it is scoped and priced separately — silence here is how an eight-week build becomes fourteen.
Administration

Colour rules

{{ rulesVersionLabel }} · every classification on every screen derives from these numbers
iYou can read the rule set. Publishing a new version needs the Website Admin role, because it re-classifies every shade at once. Raise it in Report if a band looks wrong.

Classification from HEX

RGB, HSL, HSB, CIE Lab and LCh are arithmetic and have no settings. Everything below is a judgement Paragon owns.

{{ r.groupLabel }}
{{ r.label }} {{ r.note }} {{ r.unit }}

Changes preview against the whole sample set as you type. Nothing moves until you publish.

Impact of unsaved changes
{{ impact.total }} of {{ shadeTotal }} shades in the sample set would change class ({{ impact.pct }}%)
{{ l.t }} {{ l.n }}

Re-classifying is the expensive kind of change after go-live. This is the number to agree in the calibration workshop, not after it.

Published
{{ rulesVersionLabel }}
{{ shadeTotal }} shades classified against this set. Edit a value to see what a change would cost.
Still open with Paragon
{{ o.t }}?
{{ o.note }}
Lists
{{ l.t }}{{ l.n }}
{{ i }}
{{ l.note }}
Administration

User Management

{{ usersShownLabel }}
{{ pendingRoles }} pending requestsiRoles are verified against the company HR directory through SSO and SCIM. Sensitive roles cannot be self-assigned.
UserEmailRoleHR directoryStatusAction
{{ u.initials }}{{ u.name }}
{{ u.email }}{{ u.role }}{{ u.hr }}{{ u.status }} Deactivate
Audit logrole changes · imports · prototype approvals · rule-set versionsExport CSV
{{ a.t }}{{ a.actor }}{{ a.action }}{{ a.detail }}
No access to {{ deniedWhat }}
{{ deniedWhy }} Your role is {{ role }}, assigned by the Website Admin.
{{ tour.step }}
{{ tour.t }}
{{ tour.b }}
Skip tour
Esc
{{ g.title }}
{{ r.label }}
{{ r.sub }}
↵ open
Recent
{{ r.label }}
{{ r.sub }}
Type at least two characters.
Searches shades, products, brands, saved mappings and prototype requests at once.
Nothing matches “{{ palQ }}”
Try a shade name, a product, or a brand.
↑↓ move openEsc close {{ palCountLabel }}
{{ dialog.title }}
{{ dialog.body }}
This action writes an AuditEvent with your name and timestamp.
{{ toast.msg }}