Identity
Tidemark sets the colors of its site, its charts, and its marks from one palette, which the package declares once in tidemark.identity, and this page sets out each color, the faces the site sets, and which mark belongs where. mise run docs:render writes every table on this page from that declaration, so a hex copied from here onto a slide, a poster, or a figure drawn outside the repository is the hex all three set. The audit fails a pull request where a table or a mark has drifted from the palette, and on the site, each hex opens on a swatch of its color. Every piece the site's widgets are built from, set out at work beside its source, sits on The Kit.
Color
Palette and Shades
The palette declares a small set of colors, and every other color the project sets is a shade mixed from one of them.
- Toronto leads, the deep periwinkle blue the logo and the title draw the monogram in.
- Cashmere is the second color, reading as dry sand against the blue.
- The complements, Celadon, Ube, Chambray, Seacaller, and Heath, color the chart series, and Celadon, Ube, and Seacaller color the drawings as well.
- The state colors, Apricot and Eureka, mark a failure and a warning.
- The seasonal color, October, is the pumpkin of the jack-o'-lanterns that float on the front page's strip through October, its name taken from color-name-list.
- The neutrals set the grounds, the grid, and the muted text, where Cararra and Emperor are the warm white and the dark gray of the Gulf of Maine Research Institute (GMRI).
A shade is a darker or a lighter form of its color, mixed toward black or white in the OKLCH color space. The first table below gives each declared color and what it is for, and the second gives each shade beside the color-mix expression that produces it, so a tool that cannot evaluate the expression still reaches the shade through its hex. Toronto Haze, the color of the title's letters, is the one shade that keeps less than all its chroma, taking half of Toronto Mid's, which a relative color writes as calc(c * 0.5).
Series hues
torontoToronto#5069ad
cashmereCashmere#e3c3a3
celadonCeladon#8cc5a3
ubeUbe#8a80cb
chambrayChambray#7db3e0
seacallerSeacaller#4b8488
heathHeath#c08597
State hues
apricotApricot#e8876f
eurekaEureka#e8c840
Seasonal hues
octoberOctober#c67533
Neutrals
groundCararra#f2f1ee
mutedMid Gray#999999
gridEmperor#535353
darkNear Black#1a1a1a
haze#8792ac
Toronto Haze
27% toward white · 50% chromaOn light
On dark
Set inapricot-shown · darkapricot-text · dark
Set inapricot-text · light
Set inapricot-shown · light
Set incashmere-shown · darkcashmere-text · darkseries 2
Set incashmere-text · light
Set incashmere-shown · light
Set inceladon-shown · darkceladon-text · darkseries 3
Set inceladon-text · light
Set inceladon-shown · light
Set inseries 5
Set inink · lightpage · dark
Set inelevated · darkraised · darksheer · dark
Set insunken · dark
No role, mark, or series takes it.
Set inquiet · light
Set inelevated · lightink · darkpage · lighttouch.svg
Set inraised · lightsunken · lightsheer · light
Set inseries 7
Set inmuted-shown · darkrule · both
Set inmuted-shown · light
Set inquiet · dark
Set inoctober-shown · both
Set inseacaller-shown · lightseries 6
Set inseacaller-shown · dark
Set inlogo.svgtitle.svgtouch.svgfavicon.svgseries 1
Set indeep · lightlink · lighttoronto-shown · lighttint · light
Set intitle.svg
Set intoronto-shown · dark
No role, mark, or series takes it.
Set indeep · darklink · darktint · darktitle.svgfavicon.svg
Set inseries 4
Set incite · lightube-shown · lightube-text · light
Set incite · darkube-shown · darkube-text · dark
BlackWhite
Every value as a table
| Token | Hex | Name | Purpose |
|---|---|---|---|
toronto | #5069ad | Toronto | The lead color, on the monogram in the logo and the title and on the title's water, on the favicon's monogram under the light scheme, on the touch icon's square, on the buttons and the badges under both schemes, and on a link under the light one |
cashmere | #e3c3a3 | Cashmere | The second color and the sand, on fills and washes under either scheme, on words under the dark one alone, and on the datum and the shore in every drawing |
celadon | #8cc5a3 | Celadon | The cool complement and the success state, and the gauge and the distance it reads in every drawing |
ube | #8a80cb | Ube | The violet below the lead, a chart series, the sensor's height in every drawing, and a citation on every page |
chambray | #7db3e0 | Chambray | A cool accent and a chart series |
seacaller | #4b8488 | Seacaller | The deep teal, a chart series, and the moment a reading is taken in every drawing |
heath | #c08597 | Heath | The shell's pink the docs label wears, and a chart series |
apricot | #e8876f | Apricot | The critical state, and the water's height above the datum and the pass in every drawing |
eureka | #e8c840 | Eureka | The warning state, on a line a coverage report finds partly covered |
october | #c67533 | October | The pumpkin of the jack-o'-lanterns floating on the front page's strip through October |
ground | #f2f1ee | Cararra | GMRI's warm white, the light ground, body text on the dark ground, and the touch icon's monogram |
muted | #999999 | Mid Gray | The rule dividing a page, a mark on the dark ground, and the base of quiet text there |
grid | #535353 | Emperor | GMRI's dark gray, for the grid of every chart and quiet text on the light ground |
dark | #1a1a1a | Near Black | The dark ground on the site and on every chart, and body text on the light ground |
| Token | Hex | Name | Mix |
|---|---|---|---|
apricot-ink | #bb6c58 | Apricot Ink | color-mix(in oklch, #e8876f, black 15%) |
apricot-deep | #8a4e3f | Apricot Deep | color-mix(in oklch, #e8876f, black 32%) |
cashmere-ink | #7f6c59 | Cashmere Ink | color-mix(in oklch, #e3c3a3, black 35%) |
cashmere-deep | #5c4e40 | Cashmere Deep | color-mix(in oklch, #e3c3a3, black 48%) |
celadon-ink | #4c6d59 | Celadon Ink | color-mix(in oklch, #8cc5a3, black 35%) |
celadon-deep | #364f40 | Celadon Deep | color-mix(in oklch, #8cc5a3, black 48%) |
ube-ink | #5a5387 | Ube Ink | color-mix(in oklch, #8a80cb, black 26%) |
ube-lift | #9e97d5 | Ube Lift | color-mix(in oklch, #8a80cb, white 18%) |
dark-lift | #232323 | Near Black Lift | color-mix(in oklch, #1a1a1a, white 5%) |
dark-sink | #0e0e0e | Near Black Sink | color-mix(in oklch, #1a1a1a, black 25%) |
ground-lift | #f8f8f6 | Cararra Lift | color-mix(in oklch, #f2f1ee, white 50%) |
muted-ink | #848484 | Mid Gray Ink | color-mix(in oklch, #999999, black 10%) |
muted-lift | #a5a5a5 | Mid Gray Lift | color-mix(in oklch, #999999, white 12%) |
seacaller-lift | #78a2a5 | Seacaller Lift | color-mix(in oklch, #4b8488, white 25%) |
toronto-deep | #37497b | Toronto Deep | color-mix(in oklch, #5069ad, black 22%) |
toronto-haze | #8792ac | Toronto Haze | oklch(from color-mix(in oklch, #5069ad, white 27%) l calc(c * 0.5) h) |
toronto-mid | #7c91c4 | Toronto Mid | color-mix(in oklch, #5069ad, white 27%) |
toronto-night | #1f2a4b | Toronto Night | color-mix(in oklch, #5069ad, black 45%) |
toronto-pale | #9babd3 | Toronto Pale | color-mix(in oklch, #5069ad, white 45%) |
Light and Dark Roles
A role is one use of color on a page, such as body text, a link, or the page's own ground, and each names the color it takes under the light scheme and under the dark. The site's tokens, the drawings, the charts, and both coverage reports read the same roles. Each kind of role below holds a contrast WCAG 2.2 sets against every ground a page sets it on:
- A role that sets words holds the 4.5:1 contrast of text.
- A hue's
shownstep sets a pin, a trace, or any other shape a drawing draws in the hue, and holds the 3:1 contrast of a graphical object. - A hue's
textstep sets words in the hue, such as the word a stamp frames, and holds the contrast of text.
A translucent role, such as rule, sheer, or tint, lays a share of another color over whatever sits beneath it, which the table writes as the color and its share under each scheme.
1 of 12 · cite
citetext
The hue a citation takes, meaning the staff its numbers fly on, the cloth beneath them, and the fill a number takes while the pointer rests on it or a reader jumps to its entry, beside the label and the staff a list of sources flies from and the arrow back to the citation a reader followed.
lightAa
ube-ink6.15:1darkAa
ube-lift6.49:1deeptext
The color a link takes while the pointer rests on it, and the color of a link on a tinted ground.
lightAa
toronto-deep7.74:1darkAa
toronto-pale7.59:1elevatedground
A surface floating above the page, such as a card or a menu.
light
grounddark
dark-liftinktext
Body text.
lightAa
dark15.40:1darkAa
ground15.40:1linktext
A link at rest.
lightAa
toronto-deep7.74:1darkAa
toronto-pale7.59:1pageground
The page's own ground.
light
grounddark
darkquiettext
Text set back from the body, such as a caption, a comment, or a line number.
lightAa
grid6.81:1darkAa
muted-lift7.06:1raisedground
A surface set one step off the page, such as a header band or a card's face.
light
ground-liftdark
dark-liftruletranslucent
A line dividing one part of a page from the next.
light
muted 40%dark
muted 30%sheertranslucent
The surface each widget and the list of sources on the front page lay over the water, which lets the water show through beneath their words and marks.
light
raised 75%dark
raised 75%sunkenground
A surface set below the page, such as the sidebar.
light
ground-liftdark
dark-sinktinttranslucent
The link's color laid thin behind a tip, a badge, or a highlighted line.
light
link 14%dark
link 16%Every value as a table
| Role | Meaning | Light | Dark |
|---|---|---|---|
cite | The hue a citation takes, meaning the staff its numbers fly on, the cloth beneath them, and the fill a number takes while the pointer rests on it or a reader jumps to its entry, beside the label and the staff a list of sources flies from and the arrow back to the citation a reader followed | ube-ink #5a5387 | ube-lift #9e97d5 |
deep | The color a link takes while the pointer rests on it, and the color of a link on a tinted ground | toronto-deep #37497b | toronto-pale #9babd3 |
elevated | A surface floating above the page, such as a card or a menu | ground #f2f1ee | dark-lift #232323 |
ink | Body text | dark #1a1a1a | ground #f2f1ee |
link | A link at rest | toronto-deep #37497b | toronto-pale #9babd3 |
page | The page's own ground | ground #f2f1ee | dark #1a1a1a |
quiet | Text set back from the body, such as a caption, a comment, or a line number | grid #535353 | muted-lift #a5a5a5 |
raised | A surface set one step off the page, such as a header band or a card's face | ground-lift #f8f8f6 | dark-lift #232323 |
rule | A line dividing one part of a page from the next | muted #999999 at 40% | muted #999999 at 30% |
sheer | The surface each widget and the list of sources on the front page lay over the water, which lets the water show through beneath their words and marks | raised #f8f8f6 at 75% | raised #232323 at 75% |
sunken | A surface set below the page, such as the sidebar | ground-lift #f8f8f6 | dark-sink #0e0e0e |
tint | The link's color laid thin behind a tip, a badge, or a highlighted line | link #37497b at 14% | link #9babd3 at 16% |
apricot-shown | A pin, a trace, or another shape set in Apricot | apricot-ink #bb6c58 | apricot #e8876f |
cashmere-shown | A pin, a trace, or another shape set in Cashmere | cashmere-ink #7f6c59 | cashmere #e3c3a3 |
celadon-shown | A pin, a trace, or another shape set in Celadon | celadon-ink #4c6d59 | celadon #8cc5a3 |
muted-shown | A pin, a trace, or another shape set in Mid Gray | muted-ink #848484 | muted #999999 |
october-shown | A pin, a trace, or another shape set in October | october #c67533 | october #c67533 |
seacaller-shown | A pin, a trace, or another shape set in Seacaller | seacaller #4b8488 | seacaller-lift #78a2a5 |
toronto-shown | A pin, a trace, or another shape set in Toronto | toronto-deep #37497b | toronto-mid #7c91c4 |
ube-shown | A pin, a trace, or another shape set in Ube | ube-ink #5a5387 | ube-lift #9e97d5 |
apricot-text | Words set in Apricot | apricot-deep #8a4e3f | apricot #e8876f |
cashmere-text | Words set in Cashmere | cashmere-deep #5c4e40 | cashmere #e3c3a3 |
celadon-text | Words set in Celadon | celadon-deep #364f40 | celadon #8cc5a3 |
ube-text | Words set in Ube | ube-ink #5a5387 | ube-lift #9e97d5 |
Chart Series
A chart colors its series in the order below and leaves out the two state colors, so that no series reads as an alarm. Every chart is drawn on Near Black, so a series set on a light ground, such as a slide's, needs each hue's contrast checked first, since Cashmere on Cararra reads at only 1.48:1.
Typefaces
The site sets the faces Faces in tidemark.identity.values declares once.
- A page loads each face through its Fontsource package.
- A preview card and the title set their words in the Regular file
tidemarkships undersrc/tidemark/identity/fonts/, beside the SIL Open Font License each face is published under.
SWOT against Maine’s tide gauges
SWOT against Maine’s tide gauges
SWOT against Maine’s tide gauges
Display text, titles, and the wordmark
@fontsource/young-serifBody text
@fontsource-variable/literataEvery value as a table
| Face | Sets | Site Package |
|---|---|---|
| Young Serif | Display text, titles, and the wordmark | @fontsource/young-serif |
| Literata | Body text | @fontsource-variable/literata |
| JetBrains Mono | Code | @fontsource-variable/jetbrains-mono |
Marks
Every mark is drawn as outlined paths, rather than as text, so each one renders the same, whether or not a reader's machine holds Young Serif. The name renders from title.svg as well, since text set in the face would show the face's own m where the monogram belongs.
Tidemark×
+Tidemark
Background · Data · Studies · Methods · Reproduce · Identity
Satellite altimetry against Maine’s tide gauges.
Every value as a table
| Mark | Carries | Appears On | Colors |
|---|---|---|---|
docs/assets/logo.svg | The monogram alone, its ink centered in the file | The navigation bar of every page, where it stands for the site's name | toronto #5069ad |
docs/assets/title.svg | The name with the monogram as its m, the monogram on a fine horizon along the foot of its letters above the short dashes its light breaks into on the water, with pale glints among them | The front page, the README, and the base preview card | toronto #5069ad, toronto-haze #8792ac, toronto-pale #9babd3 |
docs/assets/touch.svg | The monogram alone in Cararra, centered on a square of Toronto that a phone rounds | The home screen of a phone the site is added to and a browser's favorites, as the apple-touch-icon.png the build draws from it at 180 pixels | ground #f2f1ee, toronto #5069ad |
docs/public/favicon.svg | The monogram alone, centered in a square, in Toronto Pale under a dark color scheme | The browser tab | toronto #5069ad, toronto-pale #9babd3 |
The title draws the water the site's preview cards show, the image a page carries wherever a link to it is shared. A page in a section takes the section card, its monogram lit on a night horizon in the section's color, and every other page takes the base card, the title over a chart of the coast12 and its gauges345, whereas a page the sandbox builds for one visual takes that visual's own card. tidemark.identity.marks declares that water once for the title and the section cards alike, as the short dashes the monogram's light breaks into. The dashes pack close under the horizon and open toward the viewer, each on whole pixels where the front page sets the title 512 pixels wide and a section card sets its monogram 150 pixels wide. The title keeps the rows nearest its horizon, while the section cards keep them all. The logo, the touch icon, and the favicon each set the monogram alone, its own ink centered in its box.
- The title splits the monogram at the middle of its stem span, its left half beneath the letters and its right half over them, so the left tail runs under the e, and the right crest crosses the bowl of the a. It stands the monogram on a fine horizon along the letters' foot, with the dashes and their pale glints beneath the monogram alone. The base preview card sets the title in its own tones, whereas the team's disk stamps the name in its own two with the monogram alone as its m.
- The logo draws the monogram 96 units tall in Toronto, centered in a box 144 units tall, which the navigation bar sets at its logo height.
- The touch icon sets it in Cararra on a square of Toronto left unrounded, since a phone rounds the corners itself.
- The favicon sets it in Toronto, and in Toronto Pale under a dark color scheme.
Title Measurements
The title sets the word Tidemark in Young Serif and puts the monogram, the lowercase serif m whose three stems end in wave crests, in place of the face's own m. Each length below is measured from title.svg itself in its own units, which set the face at a type size of 200. The drawing leaves the water beneath the monogram behind, so each guide reads against the name alone:
1 of 9 · Monogram height
106.2
The monogram is drawn in Toronto and scaled to the height of the face's own m, while the other letters take Toronto Haze.
The monogram's stems stand across every column whose ink covers at least half its height.
The monogram's stems start where the face sets its own m's, this far past the e.
The letters after the monogram sit this far past its last stem, as the a sits past the face's own m.
The monogram's entry wedge and its left tail reach this far left of its stems, beneath the e.
The letters after the monogram move this far left, the width the face's m spans beyond the monogram's stems.
The face's own m spans its stems and the distance the letters after it move left together.
The word sits this far inside the file's top, left, and right edges, and the water beneath it as far inside the bottom edge.
The file's box holds the word, the water beneath its monogram, and the margin round them.
1Statistics Canada 2021. "Provinces/Territories, Cartographic Boundary File, 2021 Census." https://www12.statcan.gc.ca/
census-recensement/ .↩︎2021/ geo/ sip-pis/ boundary-limites/ files-fichiers/ lpr_000b21a_e.zip 2U.S. Census Bureau 2024. "2024 Cartographic Boundary File (SHP), State and Equivalent Entities for United States, 1:500,000." https://www2.census.gov/
geo/ .↩︎tiger/ GENZ2024/ shp/ cb_2024_us_state_500k.zip 3Gulf of Maine Research Institute & Brown University 2026. "NERACOOS ERDDAP." Northeastern Regional Association of Coastal Ocean Observing Systems. https://data.neracoos.org/
erddap/ .↩︎4United States Geological Survey 1994. "USGS Water Data for the Nation." https://doi.org/
10.5066/ .↩︎F7P55KJN 5NOAA CO-OPS 2026. "CO-OPS Data Retrieval API and Metadata API." https://tidesandcurrents.noaa.gov/
web_services_info.html .↩︎