Design System (Filter)
Design System (Filter)
Filter is the official name of the Bloqr design system. It is the single source of truth for all Bloqr visual brand assets — colors, typography, spacing, fonts, logos, and React component primitives — and every UI-bearing Bloqr repository must consume it.
The npm package name stays @bloqr/design-system; naming the package after the system would collide with the @bloqr scope’s other packages, so only the human-facing name changed, not the package or repo identifiers.
Source of truth
Filter is published from Bloqr-Systems/bloqr-design-system:
styles.css— global CSS entry point covering all tokens and@font-facedeclarationstokens/colors.css,tokens/typography.css,tokens/spacing.css,tokens/effects.css— CSS custom propertiescomponents/— React primitives (Button, Badge, Tag, Mark, Logo, Icon, Input, Card, CodeWindow)assets/— logos, favicon, OG imagefonts/— self-hosted Space Grotesk variable font filesguidelines/BLOQR_BRAND_HANDOFF.md— full visual design spec, canonical:rootblockFILTER_INTEGRATION.md— per-repo integration steps
Status in this repo
frontend/ runs Angular Material 3 (@angular/material), themed via Material’s “system-level variables” CSS custom-property API. @bloqr/design-system (currently ^1.2.0) is published to npm and adopted:
Installdone@bloqr/design-systemas a dependency for tokensImport Filter’s CSS custom properties into component stylesheetsdone —frontend/src/styles.cssimports Filter’s CSS tokens (see PR #2283 for the fix switching this from the fullstyles.cssbundle to individualtokens/*.cssimports: Angular’s build pipeline does not fully resolve the bundle’s own nested@importstatements, so it must import each token file directly). This docs site (docs/src/styles/custom.css) uses the same individual-import patternSelf-host fonts from Filter instead ofdone — Filter self-hosts Space Grotesk, Inter, and JetBrains Mono; the@fontsource@fontsource/*dependencies have been removed entirely- Reimplement Angular Material components against Filter’s CSS custom properties — done for the root token layer and matching component-level rules; every
--mat-sys-*/--color-*/--app-*token that had a matching Filter value now references it directly. The[data-theme='light']override block deliberately keeps its own manually WCAG-tuned palette rather than aliasing Filter’s light theme (seefrontend/src/styles.css’s own comments for why)
Icons are no longer part of the gap either: Material Symbols (the ligature icon font) has been fully replaced with self-hosted Lucide icons — see frontend/src/app/components/icon/icon.component.ts (<app-icon>). There is no material-symbols npm dependency and no icon font/network request at runtime.
See AGENTS.md’s Design System section (repo root) for the current, authoritative migration status and documented exceptions.
Rules
| Must do | Must not do |
|---|---|
Import Filter’s individual tokens/*.css files directly in this docs site (and in frontend/, per PR #2283) — never the full @bloqr/design-system/styles.css bundle: its own nested @import statements can go unresolved depending on the consuming build’s CSS pipeline (confirmed in Angular’s build; verified NOT to reproduce in Astro/Vite’s, but kept consistent here anyway) | Hardcode hex color values in CSS or TypeScript |
Use var(--color-*), var(--space-*), var(--font-*) tokens | Recreate theme/, brand/, or design/ folders |
Reference logos and fonts only via @bloqr/design-system exports | Load fonts from Google Fonts CDN |
| Refer to the design system as “Filter” in docs and comments | Set any background to white or any light colour |
See AGENTS.md (repo root) for the full set of mandatory rules.
Bloqr AI™ — The privacy you didn't know you needed.
© 2026 Bloqr AI™, a trademark of Bloqr Systems™. Created by Bloqr Systems™, founded by Jayson Knight.
Internet Hygiene (n.) — the ongoing practices that keep your digital life clean, private, and safe.
Our product repos live in the BloqrAI org, part of the Bloqr Systems GitHub Enterprise. Product repos are internal-visibility — enterprise membership is required to view them.