@kolkrabbi/kol-styleguide 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +6 -6
- package/src/AssetCard.jsx +1 -1
- package/src/AssetTable.jsx +2 -2
- package/src/Brand.jsx +2 -2
- package/src/BrandAssets.jsx +3 -3
- package/src/BrandBook.jsx +2 -2
- package/src/LogoCard.jsx +1 -1
- package/src/SocialMocks.jsx +16 -11
- package/src/StationeryMocks.jsx +5 -5
- package/src/Swatch.jsx +3 -3
- package/src/TypeBlock.jsx +4 -4
- package/src/brandBook.js +2 -2
- package/src/index.js +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The KOL **style-guide / brand-guide** component set — the visual specimens a brand manual is built from. Raided from the monorepo `apps/brand` styleguide and assembled here because a brand guide is a shared capability with its own cadence, distinct from the core UI atoms.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Color anatomy + the **combination lab** (60/30/10 palette × layout × logo, incl. applied-brand mockups), **logo** construction / clearspace / scaling, **mood tiles**, **type blocks**, and **asset spec tables** — plus the color/type specimen primitives (`ColorRamp`, `ColorSwatch`, `SpectrumGrid`, `TypeSample`, `TypeSpecCard`, `ProsePreview`, `AssetGrid`, `FeatureSplit`) gathered from the core packages.
|
|
6
6
|
|
|
7
7
|
```js
|
|
8
8
|
import { ComboLab, MoodTile, LogoCard, TypeBlock } from '@kolkrabbi/kol-styleguide'
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-styleguide",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Brand guide components and the brand tool",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./src/index.js",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"react-dom": "^18.3.0 || ^19.0.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@kolkrabbi/kol-
|
|
23
|
-
"@kolkrabbi/kol-
|
|
24
|
-
"@kolkrabbi/kol-
|
|
25
|
-
"@kolkrabbi/kol-theme": "^0.
|
|
22
|
+
"@kolkrabbi/kol-component": "^0.237.0",
|
|
23
|
+
"@kolkrabbi/kol-icons": "^0.33.0",
|
|
24
|
+
"@kolkrabbi/kol-framework": "^0.48.0",
|
|
25
|
+
"@kolkrabbi/kol-theme": "^0.163.0"
|
|
26
26
|
},
|
|
27
27
|
"files": [
|
|
28
28
|
"src",
|
package/src/AssetCard.jsx
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* no text-transform beyond the `uppercase` the original carried.
|
|
24
24
|
*
|
|
25
25
|
* @param {ReactNode} caption - Label above the frame; omitted, no figcaption renders
|
|
26
|
-
* @param {string} backdrop - CSS
|
|
26
|
+
* @param {string} backdrop - CSS color for the frame ground (default: the fg-04 wash)
|
|
27
27
|
* @param {string} className - Extra classes on the <figure>
|
|
28
28
|
* @param {ReactNode} children - The mock
|
|
29
29
|
*/
|
package/src/AssetTable.jsx
CHANGED
|
@@ -3,7 +3,7 @@ import { Table } from '@kolkrabbi/kol-component'
|
|
|
3
3
|
import { Icon } from '@kolkrabbi/kol-icons'
|
|
4
4
|
|
|
5
5
|
/* Resolve a CSS custom property off the document root. The download seam is
|
|
6
|
-
* handed a
|
|
6
|
+
* handed a COLOR, not a token — a consumer swapping `currentColor` in raw SVG
|
|
7
7
|
* cannot use `var(--x)`, and resolving it at the call site is how two brand
|
|
8
8
|
* apps ended up with the same four-line helper. SSR-safe: '' when no document. */
|
|
9
9
|
function resolveToken(token) {
|
|
@@ -34,7 +34,7 @@ function resolveToken(token) {
|
|
|
34
34
|
* button. The consumer opens its own overlay (`FullscreenOverlay` in both
|
|
35
35
|
* brand apps) at the ink it is handed.
|
|
36
36
|
* - **`row.onDownload(row, resolvedInk)`** — the second argument is the
|
|
37
|
-
* COMPUTED
|
|
37
|
+
* COMPUTED color, not the token, so a consumer can swap `currentColor` for
|
|
38
38
|
* it and hand back a white mark that downloads white.
|
|
39
39
|
*
|
|
40
40
|
* Columns adapt to the data: Preview appears only when a row carries a
|
package/src/Brand.jsx
CHANGED
|
@@ -7,10 +7,10 @@ import { BRAND_VIEWS, brandToc, scrollToAnchor } from './brandBook.js'
|
|
|
7
7
|
/* taxonomy-ok: organism — the brand tool: BrandBook ⇄ BrandAssets under a view switch, with the page's section rail */
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Brand — the whole brand tool: the brand book's two pages over one manifest, BRAND (the identity)
|
|
10
|
+
* Brand — The whole brand tool. the whole brand tool: the brand book's two pages over one manifest, BRAND (the identity)
|
|
11
11
|
* and ASSETS (what you download or reproduce), a switch between them, and the page's sections on a
|
|
12
12
|
* rail. ONE component so every app that carries a brand renders the same tool (apps/brand alone,
|
|
13
|
-
* media-
|
|
13
|
+
* media-hub's Brand tab) — kol-notes' `Notes` shape.
|
|
14
14
|
*
|
|
15
15
|
* The manifest is `@kolkrabbi/kol-brand-template`'s schema; its `book` field carries the copy. The
|
|
16
16
|
* marks come from `Logo` (a component taking `variant`) or `logoSources` (id → raw SVG, which the
|
package/src/BrandAssets.jsx
CHANGED
|
@@ -3,7 +3,7 @@ import { ContentCollection, FullscreenOverlay, Table } from '@kolkrabbi/kol-comp
|
|
|
3
3
|
import PageSection from '@kolkrabbi/kol-framework/src/PageSection.jsx'
|
|
4
4
|
import AssetTable from './AssetTable.jsx'
|
|
5
5
|
import AssetCard from './AssetCard.jsx'
|
|
6
|
-
import {
|
|
6
|
+
import { BrandAvatar } from './SocialMocks.jsx'
|
|
7
7
|
import { BusinessCardBack, BusinessCardFront, EmailSignature, Envelope, Letterhead } from './StationeryMocks.jsx'
|
|
8
8
|
import BrandMark from './BrandMark.jsx'
|
|
9
9
|
import { Prose, SectionIndex } from './BrandBook.jsx'
|
|
@@ -29,7 +29,7 @@ const brandedAssetCols = [
|
|
|
29
29
|
]
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
* BrandAssets — the ASSETS page of the brand tool: what you download or reproduce. Logos (the
|
|
32
|
+
* BrandAssets — The brand book's assets page. the ASSETS page of the brand tool: what you download or reproduce. Logos (the
|
|
33
33
|
* mark table, with the ink toggle, zoom and recoloured download), the branded-asset register,
|
|
34
34
|
* stationery, social post sizes and profile avatars.
|
|
35
35
|
*
|
|
@@ -134,7 +134,7 @@ export default function BrandAssets({ brand, Logo, logoSources }) {
|
|
|
134
134
|
<PageSection key={s.key} {...head}>
|
|
135
135
|
<div className="kol-grid mt-8 items-start">
|
|
136
136
|
{brand.social.avatars.map(({ bg, polarity }, i) => (
|
|
137
|
-
<AssetCard key={i}><
|
|
137
|
+
<AssetCard key={i}><BrandAvatar mark={mark(marks.avatar, { className: 'w-1/2' })} bg={bg} polarity={polarity} /></AssetCard>
|
|
138
138
|
))}
|
|
139
139
|
</div>
|
|
140
140
|
</PageSection>
|
package/src/BrandBook.jsx
CHANGED
|
@@ -11,7 +11,7 @@ import { typeSections } from './typeSpecimen.js'
|
|
|
11
11
|
/* taxonomy-ok: organism — the brand book's identity page: PageHero + PageSection chapters over LogoCard, Swatch and the type specimens */
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* BrandBook — the BRAND page of the brand tool: the identity, one scrolling page of chapters
|
|
14
|
+
* BrandBook — The brand book's identity page. the BRAND page of the brand tool: the identity, one scrolling page of chapters
|
|
15
15
|
* (About · Tone · Look · Logo · Lockups · Color · Typography) under a hero and a chapter index.
|
|
16
16
|
*
|
|
17
17
|
* kol-olina's apps/brand `pages/brand/*`, carried class-for-class; what was that client's copy now
|
|
@@ -114,7 +114,7 @@ export function SectionIndex({ sections }) {
|
|
|
114
114
|
)
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
/*
|
|
117
|
+
/* Color — the copy, then one swatch row per ramp under its label and note. The first ramp's
|
|
118
118
|
* heading sits in the copy's own prose block (olina's Concept + Greyscale were one block); each
|
|
119
119
|
* further ramp opens its own, as kol-website's hue ramps did. */
|
|
120
120
|
function ColorSection({ s, ramps }) {
|
package/src/LogoCard.jsx
CHANGED
|
@@ -3,7 +3,7 @@ import ClearspaceDiagram, { hasFramework } from './ClearspaceDiagram.jsx'
|
|
|
3
3
|
import { ToggleSwitch } from '@kolkrabbi/kol-component'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* LogoCard — framed logo specimen tile with a clearspace / grid toggle.
|
|
6
|
+
* LogoCard — A logo specimen tile. framed logo specimen tile with a clearspace / grid toggle.
|
|
7
7
|
*
|
|
8
8
|
* A brand-manual logo plate: the mark centered in a padded frame, an optional
|
|
9
9
|
* caption, and — when construction overlays are supplied — a toggle that reveals
|
package/src/SocialMocks.jsx
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - `KolLogo` imported from the app → the `mark` node.
|
|
12
12
|
* - A seven-stop client palette (champagne / sand / burgundy / maroon / wine)
|
|
13
13
|
* → `palette`, defaulting to the theme's own ink and paper. A brand supplies
|
|
14
|
-
* its own; the DS ships no
|
|
14
|
+
* its own; the DS ships no color.
|
|
15
15
|
* - `'Bricolage Grotesque'` and `'JetBrains Mono'` by name → `fonts`,
|
|
16
16
|
* defaulting to `--kol-font-family-sans-narrow` / `--kol-font-family-mono`.
|
|
17
17
|
* A foreign family by name in a package is how a consumer's type silently
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* const brand = { mark: <Asset name="logomark" />, palette: { accent: '#F3F1EC' } }
|
|
27
27
|
* <PostPhoto {...brand} />
|
|
28
28
|
* <StoryType {...brand} quote={<>Quiet,<br/>considered.</>} />
|
|
29
|
-
* <
|
|
29
|
+
* <BrandAvatar {...brand} />
|
|
30
30
|
*
|
|
31
31
|
* One object spread into each mock is the intended call shape — no context, no
|
|
32
32
|
* provider: a brand book renders these in a grid and already holds the object.
|
|
@@ -61,7 +61,7 @@ const resolve = (palette, fonts) => [
|
|
|
61
61
|
]
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
|
-
* PostPhoto — feed post, photo ground with the mark in the corner (1:1).
|
|
64
|
+
* PostPhoto — A photo feed post. feed post, photo ground with the mark in the corner (1:1).
|
|
65
65
|
*
|
|
66
66
|
* @param {ReactNode} mark - The brand mark
|
|
67
67
|
* @param {Object} palette - Partial override of DEFAULT_MOCK_PALETTE
|
|
@@ -83,7 +83,7 @@ export function PostPhoto({ mark, palette, fonts, media, className = '' }) {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
|
-
* PostType — feed post, type-driven quote on the accent ground (1:1).
|
|
86
|
+
* PostType — A type-driven feed post. feed post, type-driven quote on the accent ground (1:1).
|
|
87
87
|
*
|
|
88
88
|
* @param {ReactNode} mark - The brand mark
|
|
89
89
|
* @param {Object} palette - Partial override of DEFAULT_MOCK_PALETTE
|
|
@@ -107,7 +107,7 @@ export function PostType({ mark, palette, fonts, quote = 'Your line here.', clas
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
/**
|
|
110
|
-
* PostProduct — feed post, product flat with a caption row (1:1).
|
|
110
|
+
* PostProduct — A product feed post. feed post, product flat with a caption row (1:1).
|
|
111
111
|
*
|
|
112
112
|
* @param {ReactNode} mark - The brand mark
|
|
113
113
|
* @param {Object} palette - Partial override of DEFAULT_MOCK_PALETTE
|
|
@@ -153,7 +153,7 @@ export function PostProduct({
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
/**
|
|
156
|
-
* PostEditorial — feed post, half photo / half type (1:1).
|
|
156
|
+
* PostEditorial — A half photo and half type post. feed post, half photo / half type (1:1).
|
|
157
157
|
*
|
|
158
158
|
* @param {ReactNode} mark - The brand mark
|
|
159
159
|
* @param {Object} palette - Partial override of DEFAULT_MOCK_PALETTE
|
|
@@ -194,7 +194,7 @@ export function PostEditorial({
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
/**
|
|
197
|
-
* StoryPhoto — story frame, full-bleed photo with the mark low-left (9:16).
|
|
197
|
+
* StoryPhoto — A full-bleed photo story. story frame, full-bleed photo with the mark low-left (9:16).
|
|
198
198
|
*
|
|
199
199
|
* @param {ReactNode} mark - The brand mark
|
|
200
200
|
* @param {Object} palette - Partial override of DEFAULT_MOCK_PALETTE
|
|
@@ -216,7 +216,7 @@ export function StoryPhoto({ mark, palette, fonts, media, className = '' }) {
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
/**
|
|
219
|
-
* StoryType — story frame, type-driven with the mark centred low (9:16).
|
|
219
|
+
* StoryType — A type-driven story. story frame, type-driven with the mark centred low (9:16).
|
|
220
220
|
*
|
|
221
221
|
* @param {ReactNode} mark - The brand mark
|
|
222
222
|
* @param {Object} palette - Partial override of DEFAULT_MOCK_PALETTE — `ink` is the ground here and `accent` the type
|
|
@@ -240,7 +240,9 @@ export function StoryType({ mark, palette, fonts, quote = 'Your line here.', cla
|
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
/**
|
|
243
|
-
*
|
|
243
|
+
* BrandAvatar — The brand's round profile mark. the round profile mark (1:1). Renamed from
|
|
244
|
+
* `ProfileAvatar` 2026-10-01 (user ruling): it is a brand-book mock of the brand's mark in a social
|
|
245
|
+
* profile frame, not a second `Avatar` — that one is a person. `ProfileAvatar` is the alias.
|
|
244
246
|
*
|
|
245
247
|
* The forks called it `Avatar`, which is already a kol-component atom (a
|
|
246
248
|
* PERSON's avatar). Two packages exporting one name is a collision the roster
|
|
@@ -248,11 +250,11 @@ export function StoryType({ mark, palette, fonts, quote = 'Your line here.', cla
|
|
|
248
250
|
*
|
|
249
251
|
* @param {ReactNode} mark - The brand mark
|
|
250
252
|
* @param {Object} palette - Partial override of DEFAULT_MOCK_PALETTE
|
|
251
|
-
* @param {string} bg - Ground
|
|
253
|
+
* @param {string} bg - Ground color; unset, the `paper` stop
|
|
252
254
|
* @param {'dark'|'light'} polarity - Which way the mark inks against that ground (default: 'dark')
|
|
253
255
|
* @param {string} className - Extra classes on the frame
|
|
254
256
|
*/
|
|
255
|
-
export function
|
|
257
|
+
export function BrandAvatar({ mark, palette, bg, polarity = 'dark', className = '' }) {
|
|
256
258
|
const [pal] = resolve(palette)
|
|
257
259
|
return (
|
|
258
260
|
<div
|
|
@@ -263,3 +265,6 @@ export function ProfileAvatar({ mark, palette, bg, polarity = 'dark', className
|
|
|
263
265
|
</div>
|
|
264
266
|
)
|
|
265
267
|
}
|
|
268
|
+
|
|
269
|
+
/** @deprecated 2026-10-01 — use BrandAvatar. Drops when nobody imports it (04-retirements.md). */
|
|
270
|
+
export const ProfileAvatar = BrandAvatar
|
package/src/StationeryMocks.jsx
CHANGED
|
@@ -79,7 +79,7 @@ const capsStyle = (fonts) => ({
|
|
|
79
79
|
})
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
|
-
* BusinessCardFront — the mark, centred, on paper.
|
|
82
|
+
* BusinessCardFront — The front of a business card. the mark, centred, on paper.
|
|
83
83
|
*
|
|
84
84
|
* @param {ReactNode} mark - The brand mark; sized to 70% of the card height
|
|
85
85
|
* @param {Object} palette - Partial override of DEFAULT_STATIONERY_PALETTE
|
|
@@ -128,7 +128,7 @@ export function BusinessCardBack({ info, palette, fonts, className = '' }) {
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
|
-
* Envelope — DL, mark top-left, return address bottom-right, fold line.
|
|
131
|
+
* Envelope — A DL envelope. DL, mark top-left, return address bottom-right, fold line.
|
|
132
132
|
*
|
|
133
133
|
* @param {ReactNode} mark - The brand mark, in an 8-unit-tall box
|
|
134
134
|
* @param {Object} info - Partial override of DEFAULT_BRAND_INFO — reads identity.name and the studio block
|
|
@@ -162,7 +162,7 @@ export function Envelope({ mark, info, palette, fonts, className = '' }) {
|
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
/**
|
|
165
|
-
* Letterhead — A4: wordmark, body, contact rule at the foot.
|
|
165
|
+
* Letterhead — An A4 letterhead. A4: wordmark, body, contact rule at the foot.
|
|
166
166
|
*
|
|
167
167
|
* @param {ReactNode} mark - The brand mark (a wordmark in the forks), in a 10-unit-tall box
|
|
168
168
|
* @param {Object} info - Partial override of DEFAULT_BRAND_INFO — reads identity.founder, contact.web, contact.phone, studio.city, studio.country
|
|
@@ -214,7 +214,7 @@ export function Letterhead({ mark, info, palette, fonts, children, signoff = 'Wa
|
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
/**
|
|
217
|
-
* LetterheadCorrespondence — the richer sheet: mark + address block, a
|
|
217
|
+
* LetterheadCorrespondence — A letterhead for correspondence. the richer sheet: mark + address block, a
|
|
218
218
|
* date/ref/to grid, the body, a signed signoff, and a legal footer.
|
|
219
219
|
*
|
|
220
220
|
* The forks called this `LetterheadB`. Renamed on the way in — a B suffix says
|
|
@@ -350,7 +350,7 @@ export function LetterheadCorrespondence({
|
|
|
350
350
|
export const LetterheadB = LetterheadCorrespondence
|
|
351
351
|
|
|
352
352
|
/**
|
|
353
|
-
* EmailSignature — mark, rule, name and contact line.
|
|
353
|
+
* EmailSignature — An email signature. mark, rule, name and contact line.
|
|
354
354
|
*
|
|
355
355
|
* @param {ReactNode} mark - The brand mark, in a 16-unit square
|
|
356
356
|
* @param {Object} info - Partial override of DEFAULT_BRAND_INFO — reads identity.founder, identity.name, contact.email, contact.web
|
package/src/Swatch.jsx
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ColorSwatch } from '@kolkrabbi/kol-component'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Swatch — the DOCUMENTED swatch: a specimen bar over its meta row (name, hex),
|
|
4
|
+
* Swatch — A documented color swatch. the DOCUMENTED swatch: a specimen bar over its meta row (name, hex),
|
|
5
5
|
* with an optional canonical-anchor dot.
|
|
6
6
|
*
|
|
7
7
|
* `ColorSwatch` (kol-component) is the chip alone — a fixed-size pressable atom
|
|
8
|
-
* for paint bars and inspectors. A
|
|
8
|
+
* for paint bars and inspectors. A color PAGE needs the specimen plus its label
|
|
9
9
|
* and value, which is the form both brand apps had built locally
|
|
10
10
|
* (`brand-book-mocks-two-consumers`, 2026-09-03: 23 lines, byte-identical in
|
|
11
11
|
* kol-client-olina and kol-website). This composes the atom rather than
|
|
@@ -31,7 +31,7 @@ import { ColorSwatch } from '@kolkrabbi/kol-component'
|
|
|
31
31
|
* The hex is uppercased — that is value formatting, not a text-transform on
|
|
32
32
|
* copy; `name` renders exactly as authored.
|
|
33
33
|
*
|
|
34
|
-
* @param {string} hex - The
|
|
34
|
+
* @param {string} hex - The color, e.g. '#131316' (required — it is both the paint and the printed value)
|
|
35
35
|
* @param {ReactNode} name - Label beside the value; omitted, only the hex renders
|
|
36
36
|
* @param {boolean} anchor - Mark this stop as the palette's canonical anchor — a difference-blended dot centred on the chip (default: false)
|
|
37
37
|
* @param {number|string} height - Specimen depth, the forks' `.kol-swatch-chip` height (default: 96)
|
package/src/TypeBlock.jsx
CHANGED
|
@@ -5,12 +5,12 @@ import { familyFor } from './typographyCuts'
|
|
|
5
5
|
*
|
|
6
6
|
* Renders one sample string with a fully consumer-controlled type treatment:
|
|
7
7
|
* cut (Right Grotesk width / mono), weight, italic, size, tracking,
|
|
8
|
-
* line-height, case, alignment,
|
|
8
|
+
* line-height, case, alignment, color, and an optional stroke. A pure,
|
|
9
9
|
* stateless render — feed it props, it draws the specimen. Defaults land on
|
|
10
10
|
* Right Grotesk regular so a bare `<TypeBlock />` shows a legible baseline.
|
|
11
11
|
*
|
|
12
|
-
* **Position +
|
|
13
|
-
* container, outline, or drag chrome, and inherits
|
|
12
|
+
* **Position + color are the consumer's job.** TypeBlock owns no positioned
|
|
13
|
+
* container, outline, or drag chrome, and inherits color by default
|
|
14
14
|
* (`currentColor`) so the surrounding surface / theme drives ink. Wrap it in
|
|
15
15
|
* whatever tile, row, or frame the specimen page needs.
|
|
16
16
|
*
|
|
@@ -38,7 +38,7 @@ import { familyFor } from './typographyCuts'
|
|
|
38
38
|
* align text-align
|
|
39
39
|
* color ink (default 'currentColor' — inherit from surface / theme)
|
|
40
40
|
* strokeWidth outline width in px (0 = none)
|
|
41
|
-
* strokeColor outline
|
|
41
|
+
* strokeColor outline color (required for stroke to render)
|
|
42
42
|
* className extra classes on the sample element
|
|
43
43
|
* style inline-style overrides merged last
|
|
44
44
|
*/
|
package/src/brandBook.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* or reproduce — each a stack of sections. The section ids, eyebrows, titles and ledes below are
|
|
7
7
|
* that app's, verbatim — except the Logos and Branded ledes, which named files in that repo and are
|
|
8
8
|
* left for its manifest to set; anything that was the CLIENT's copy (About, Tone, Look, the logo concept,
|
|
9
|
-
* the
|
|
9
|
+
* the color concept) is not here — it comes from the manifest's `book` field, section by section
|
|
10
10
|
* (`@kolkrabbi/kol-brand-template` schema). A manifest key overrides the default of the same name.
|
|
11
11
|
*/
|
|
12
12
|
|
|
@@ -100,7 +100,7 @@ export const BRANDED_ASSET_ROWS = [
|
|
|
100
100
|
]
|
|
101
101
|
|
|
102
102
|
/** An in-page anchor click that scrolls instead of setting the hash — the host may route on the hash
|
|
103
|
-
* (media-
|
|
103
|
+
* (media-hub does; apps/brand keeps its page there), so an anchor must not replace it. */
|
|
104
104
|
export function scrollToAnchor(e) {
|
|
105
105
|
e.preventDefault()
|
|
106
106
|
const id = e.currentTarget.getAttribute('href')?.slice(1)
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @kolkrabbi/kol-styleguide — the brand style-guide component set.
|
|
2
2
|
//
|
|
3
|
-
// Visual specimens a brand manual is built from —
|
|
3
|
+
// Visual specimens a brand manual is built from — color anatomy + the
|
|
4
4
|
// combination lab, logo construction / clearspace / scaling, mood tiles,
|
|
5
5
|
// type blocks, asset spec tables. Raided from the monorepo apps/brand
|
|
6
6
|
// styleguide (2026-07). Styling ships in @kolkrabbi/kol-theme
|
|
@@ -27,7 +27,7 @@ export { generatePalette, fgOn, hexToHsl, hslToHex, GENERATION_MODES } from './c
|
|
|
27
27
|
export { default as AssetCard } from './AssetCard.jsx'
|
|
28
28
|
export { default as Swatch } from './Swatch.jsx'
|
|
29
29
|
export {
|
|
30
|
-
PostPhoto, PostType, PostProduct, PostEditorial, StoryPhoto, StoryType, ProfileAvatar,
|
|
30
|
+
PostPhoto, PostType, PostProduct, PostEditorial, StoryPhoto, StoryType, BrandAvatar, ProfileAvatar,
|
|
31
31
|
DEFAULT_MOCK_PALETTE, DEFAULT_MOCK_FONTS,
|
|
32
32
|
} from './SocialMocks.jsx'
|
|
33
33
|
export {
|