Design System

Sapra.AI component library — a reference for developers and AI assistants.

Colors

Black#000000
Grey Dark#171717
Grey#A5A5A5
Grey Light#EAEAEA
Primary#00FFDD
Primary Hover#00BCA3
Success#00D649
Warning#FFAE00
Error#FF6B7A

Typography

Desktop (≥1024px)

H1

The quick brown fox

Satoshi Medium — 56px / 1.1 / 0.56px
H2

The quick brown fox

Satoshi Medium — 32px / 1.1 / 0.32px
H3

The quick brown fox

Satoshi Medium — 24px / 1.1 / 0.24px
P

The quick brown fox jumps over the lazy dog. Lorem ipsum dolor sit amet.

Satoshi Medium — 14px / 1.2 / 0.7px
Label

THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

IBM Plex Mono Regular — 10px / 1.0 / 1px / uppercase

Tablet (768px – 1023px)

H1

The quick brown fox

Satoshi Medium — 48px / 1.1 / 0.48px
H2

The quick brown fox

Satoshi Medium — 32px / 1.1 / 0.32px
H3

The quick brown fox

Satoshi Medium — 24px / 1.1 / 0.24px
P

The quick brown fox jumps over the lazy dog. Lorem ipsum dolor sit amet.

Satoshi Medium — 14px / 1.2 / 0.7px
Label

THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

IBM Plex Mono Regular — 10px / 1.0 / 1px / uppercase

Mobile (<768px)

H1

The quick brown fox

Satoshi Medium — 32px / 1.1 / 0.32px
H2

The quick brown fox

Satoshi Medium — 24px / 1.1 / 0.24px
P

The quick brown fox jumps over the lazy dog. Lorem ipsum dolor sit amet.

Satoshi Medium — 14px / 1.2 / 0.7px
Label

THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

IBM Plex Mono Regular — 10px / 1.0 / 1px / uppercase

Design Tokens

Font Families

--font-headingSatoshi
--font-bodySatoshi
--font-monoIBM Plex Mono

Font Sizes

--text-h156px
--text-h232px
--text-h324px
--text-p14px
--text-label10px

Colors

--color-black
#000000
--color-grey-dark
#171717
--color-grey
#A5A5A5
--color-grey-light
#EAEAEA
--color-primary
#00FFDD
--color-primary-hover
#00BCA3
--color-error
#FF6B7A
--color-warning
#FFAE00
--color-success
#00D649

Spacing

--space-xs
6px
--space-sm
12px
--space-md
24px
--space-lg
48px
--space-xl
96px

Grid System

BreakpointRangeColumnsGutterMargin
Mobile320–767px412px12px
Tablet768–1023px612px24px
Desktop1024–1439px1212px24px
Large Desktop1440px+1224px48px

Preview (12 columns)

1
2
3
4
5
6
7
8
9
10
11
12
Sidebar + Content (2 / 10)
2 col
10 col
Drawer (7 / 5)
7 col
5 col

Components

UiIcon

app/components/ui/UiIcon.vue

Inline SVG icon component. Inherits color via currentColor.

All icons (41)
arrow-left
arrow-right
arrow-up
arrow-down
caret-down
caret-left
caret-right
caret-up
x
user
bookmark-simple
bookmark-simple-fill
star
copy
arrow-square-out
whatsapp-logo
facebook-logo
telegram-logo
linkedin-logo
x-logo
magnifying-glass
plus
minus
dots-three
pencil-simple
trash
circle-fill
arrows-clockwise
file-text
link
trend-up
map-pin
calendar-check
check-circle
check-square
square
warning-circle
x-circle
list
house
funnel-simple
Sizes
12px
16px
20px
24px
32px

UiButton

app/components/ui/UiButton.vue

Multi-variant button. Renders <button>, <a>, or NuxtLink via to/href props.

Variants
Sizes
With icon
Icon only
Disabled

UiTextInput

app/components/ui/UiTextInput.vue

Text input field with optional label, icon, validation status, and helper link.

States

Looks good!

This field is required

Forgot?

UiDropdown

app/components/ui/UiDropdown.vue

Select dropdown with label and custom options.

UiCheckbox

app/components/ui/UiCheckbox.vue

Checkbox with three states: unchecked, checked, and indeterminate.

States

UiRadioGroup

app/components/ui/UiRadioGroup.vue

Radio button group with optional label.

With label
Pick one
Without label
Disabled

UiSwitch

app/components/ui/UiSwitch.vue

Toggle switch for boolean settings.

States

UiChoicebox

app/components/ui/UiChoicebox.vue

Card-style selectable option with checkbox and description.

States

UiTag

app/components/ui/UiTag.vue

Tag/chip for categories, filters, and labels. Supports semantic color variants.

Variants
DefaultSuccessWarningAlert
Active state
DefaultSuccessWarningAlert
Modifiers
No outlineWith iconSearch1234Search active56

UiBadge

app/components/ui/UiBadge.vue

Small colored label for statuses and categories.

Variants
SuccessWarningErrorInfoNeutral

UiStatus

app/components/ui/UiStatus.vue

Status indicator with colored dot and label.

Variants
AttivaIn attesaErroreInattivaCustom label

UiAvatar

app/components/ui/UiAvatar.vue

Circular avatar with user icon fallback or initials.

Sizes & content
sm
md
lg
ABinitials sm
CDinitials md
JDinitials lg

UiLink

app/components/ui/UiLink.vue

Styled link/button with icon support and multiple layouts.

Variants
Disabled
With icons
Bordered
Icon top

UiDivider

app/components/ui/UiDivider.vue

Horizontal rule separator.

Content above


Content below

UiSpinner

app/components/ui/UiSpinner.vue

Loading spinner with animated rotation. Shows a solid circle when complete.

Loading
sm
md
lg
Complete
sm
md
lg

UiProgressBar

app/components/ui/UiProgressBar.vue

Horizontal progress bar with optional percentage label.

Values
0%
25%
50%
75%
100%

UiMessageBox

app/components/ui/UiMessageBox.vue

Alert/notification box with variant icons and optional dismiss button.

Variants
Modifiers

UiPagination

app/components/ui/UiPagination.vue

Page navigation with ellipsis and prev/next arrows.

Interactive (1 / 10)

UiTabs

app/components/ui/UiTabs.vue

Tab navigation with active indicator and content slot.

Content for the Overview tab.

UiAccordion / UiAccordionItem

app/components/ui/UiAccordion.vue

Collapsible content panels.

This section starts expanded.

UiCard + UiTable

app/components/ui/UiCard.vue · UiTable.vue

Card wrapper with title and actions slot. Table renders semantic HTML with sortable columns.

Users

NameRoleStatusActions
Mario RossiDeveloperActive
Anna VerdiDesignerPending
Luca BianchiPMInactive

CardDashboard

app/components/CardDashboard.vue

Topic card with tag, title, description, and action link.

Topic in crescita

Intelligenza Artificiale

+340% di copertura nelle ultime 3 ore. OpenAI ha annunciato nuovi modelli per il mercato europeo.

Vedi articoli
Aggiornamento

Cybersecurity

Nuove normative UE in vigore da aprile 2026.

CardArticle

app/components/CardArticle.vue

Article card with image, metadata, sentiment, and categories.

Dieci anni di OpenAI: successi e sfide

Dieci anni di OpenAI: successi e sfide

OpenAI è stata fondata nel 2015 da Sam Altman ed Elon Musk con l'obiettivo di sviluppare un'intelligenza artificiale responsabile e benefica per l'umanità.


Sentiment negativoScore 96%

Categorie
AITech

Nuova legge sulla privacy digitale

Il Parlamento europeo approva nuove regole sulla protezione dei dati personali.


Sentiment positivoScore 82%

Categorie
PrivacyEU

CardSaved

app/components/CardSaved.vue

Collection card showing saved article count and metadata.

Aprile 2026

Appalti 2026

8 articoli

ultimo aggiunto: 2 ore fa

creata: 5 giorni fa

Marzo 2026

AI & Regolamentazione

23 articoli

ultimo aggiunto: 1 giorno fa

creata: 2 settimane fa

AppSidebar

app/components/AppSidebar.vue

Sidebar with navigation links, topic filters, and source filters.

AppDrawer + DrawerArticle

app/components/AppDrawer.vue

Sliding panel from the right edge with backdrop overlay. DrawerArticle provides article detail content.

AppModal

app/components/AppModal.vue

Centered dialog overlay with optional confirmation footer. Useful for confirm actions, alerts, and short forms.

Confirmation modal
Info modal (no footer)

SearchPanel

app/components/SearchPanel.vue

Search section with text input, category filter, and tag results grid.

UiChartKpi

app/components/ui/UiChartKpi.vue

Single metric display with optional trend indicator. Pure CSS, no chart.js dependency.

Variants
Total articles
529 +12.5%
Avg sentiment
0.34 -3.2%
Sources active
5
Error rate
2.1% +8.0%

UiChartDonut

app/components/ui/UiChartDonut.vue

Donut/pie chart. Colors default to design system palette.

UiChartLine

app/components/ui/UiChartLine.vue

Line/area chart. Supports multiple datasets, fill mode, and custom colors.

Line (single dataset)
Area (fill mode, two datasets)

UiChartBar

app/components/ui/UiChartBar.vue

Bar chart. Supports horizontal and vertical orientation.

Horizontal
Vertical

UiDateRangePicker

app/components/ui/UiDateRangePicker.vue

Date range picker with preset buttons and custom date inputs.

Default presets

Selected: — / —