Changelog
2.3.0
- Added reusable compact and split page-lead compositions.
- Added a public density API for page insets, title-to-lead spacing, section
boundaries, object padding, layout gaps, and content measure.
- Reduced duplicated whitespace in the default desktop and mobile rhythm.
2.2.2
- Audit active page sources for inline style attributes and JavaScript style
writes before those declarations can reach the rendered DOM.
- Continue to permit custom-property-only inline content data, such as
per-person portrait positioning.
2.2.1
- Centralize shared color constants used by both sites.
- Make the ownership verifier reject literal consumer colors and
!important
overrides in addition to local typography and inline visual styles.
2.2.0
- Enforce single ownership of typography by rejecting all consumer declarations.
- Add a deterministic style-ownership auditor and mechanical cleanup mode.
- Promote multilingual personal-hero text to explicit shared semantic roles.
- Add compact semantic roles for academic-activity records.
2.1.5
- Classify update-category tags as shared labels rather than wrapper metadata.
- Keep update dates on the metadata tier while removing local visual drift.
- Assign compact item and supporting roles to mentorship and academic-contribution groups.
2.1.4
- Use regular weight for inactive contextual navigation.
- Preserve semibold emphasis for the active section only.
2.1.3
- Lower structural-fallback specificity so explicit semantic roles always win.
2.1.2
- Remove the legacy article-wide supporting-text fallback.
- Align structural CSS fallbacks with the compact-content DOM roles.
2.1.1
- Keep page-level narrative prose on the body tier.
- Reserve supporting typography for repeated records, cards, FAQs, openings, and compact content groups.
2.1.0
- Separate quiet navigation typography from primary action controls.
- Map repeated record and card headings to the shared item-title role.
- Preserve subsection scale for explanatory structures such as FAQs and openings.
2.0.0
- Replace wrapper-specific typography with one hierarchy derived from semantic HTML.
- Add a shared XPath contract consumed by both the browser and build pipeline.
- Add a deterministic Python fixer/verifier for roles, inline typography, and heading order.
- Exclude standalone project systems from the two-site typography audit.
1.8.1
- Extend literal typography checks to standalone project HTML pages.
1.8.0
- Define and document one semantic type ladder from display titles through labels.
- Add utility classes and customization arguments for every public type role.
- Normalize service rows, update-card lists, lab-note heroes, and people captions.
- Reject consumer CSS that introduces literal pixel/rem font sizes or numeric weights.
1.7.1
- Extend customization arguments to light and dark surfaces, text, borders, and complete accent palettes.
- Strengthen metadata typography selectors so semantic roles beat generic card-paragraph rules.
- Add shared statistic sizing and compact-control coverage for note links.
1.7.0
- Add the public
declare-customize mixin for brand, typography, shape, layout, and rhythm arguments.
- Document layout selection, consumer setup, supported customization, ownership, and upgrades.
- Preserve clicked section-menu targets when multiple sections share a horizontal row.
- Ensure inline menus reach their docked state before scroll-spy selection resumes.
- Centralize section-label chips, compact list grids, technical content formatting, and mobile content wrapping.
- Strengthen consumer verification against local copies of shared content and token rules.
1.6.0
- Add selectable lab and personal site shells with documented customization variables.
- Centralize wrapper columns, author-sidebar geometry, responsive stacking, and print behavior.
- Correct inline and mobile submenu targeting by measuring the menu’s docked position.
- Center both footer text and footer links.
- Promote FAQ answers to supporting-text size and centralize the FAQ row pattern.
- Reject consumer redefinitions of shared shell and FAQ selectors.
1.5.0
- Add a shared right-rail page composition for contents and publication-year navigation.
- Make rail placement independent of DOM source order and stack it consistently on smaller screens.
- Keep long desktop rail labels inside their boundary while preserving horizontal mobile navigation.
- Centralize muted, parenthesized publication-category counts and sticky archive controls.
- Guard the canonical shared layout classes against consumer redefinition.
1.4.1
- Give the shared page composition classes one inherited width-safety baseline.
- Leave flex/grid geometry and sidebar placement explicitly site-specific.
1.4.0
- Make global design tokens and base element rules core-only.
- Centralize inner-page metadata strips, title spacing, and divider treatment.
- Reject consumer redefinitions of shared tokens and page headers.
- Remove obsolete personal-site component styles from the lab consumer.
1.3.0
- Add one shared publication archive component family.
- Centralize publication search, filters, records, metadata, links, and abstracts.
- Keep archive composition and year-rail placement site-specific.
- Enforce single ownership for shared primary and secondary controls.
1.2.4
- Position anchored content from the rendered bottom of a sticky inline menu.
1.2.3
- Detect horizontal menus by layout rather than only by overflow.
- Apply the correct sticky-menu offset even when every item already fits.
1.2.2
- Reserve anchor offset ownership for the shared section-menu component.
- Reject consumer
scroll-margin-top declarations that can hide headings.
1.2.1
- Keep anchored section headings clear of sticky inline section menus.
1.2.0
- Move site titles, logo variants, and theme-aware logo switching into core.
- Centralize footer link states and responsive masthead logo dimensions.
- Reject consumer stylesheet definitions of shared site-chrome selectors.
1.1.0
- Introduce one inherited section-menu component with rail and inline variants.
- Centralize sticky, active, hover, focus, and mobile overflow behavior.
- Prevent consumer stylesheets from redefining shared section-menu classes.
- Preserve the first mobile item border by removing edge-clipping masks.
1.0.6
- Correct the consumer update instructions to reference the shared sync helper.
1.0.5
- Allow the sync helper to update initialized consumers before their first
parent-repository commit.
1.0.4
- Remove selectors absent from the combined generated output of both sites.
1.0.3
- Normalize nested lab call-to-action controls to the shared control scale.
- Reject reintroduced duplicate shared-contract blocks in consumer CSS.
1.0.2
- Enforce semantic type roles against legacy high-specificity component rules.
- Require the explicit
declare-core document inheritance contract.
1.0.1
- Preserve the established 1.65 baseline leading outside content regions.
- Add consumer synchronization and cross-repository alignment checks.
1.0.0
- Establish shared color, type, spacing, control, and chrome tokens.
- Unify base typography, buttons, navigation, footer, and theme controls.
- Centralize mobile primary-menu and in-page section-menu behavior.