Revdot Design System / Widget Components

Revdot Widget Components

Revdotin chat-widgetin tuotantokomponentit: tumma lasi, terävä taustakuva, Forest Signal -vihreä ja pillimuodot. Jokainen preview käyttää suoraan revdot-components.css-tiedostoa — kopioitu koodi toimii sellaisenaan.

Ihmiselle

Selaa sivupalkista, katso live-preview, kopioi HTML. Lisää sivullesi revdot-components.css ja kääri komponentit <div class="rvf-host" data-theme="dark"> -elementtiin.

AI:lle

Anna agentille skills/revdot-taste/ (SKILL.md + tokens.css + components.md) tai suoraan tämä sivu + revdot-components.css. Snippetit ovat 1:1 tuotantowidgetin kanssa.

Colors #

Brändipaletti revdot.ai:sta. Yksi vihreä signaaliväri — Forest Signal — kaikille interaktiivisille korostuksille. Widgetin pinnat ovat läpikuultavia mustia/valkoisia, eivät kiinteitä värejä. Klikkaa swatchia kopioidaksesi arvon.

Widgetin pintatokenit (dark) — läpikuultavuus on järjestelmän ydin

TokenArvoRooli
--widget-bgrgba(14,16,20,.62)Paneelin lasipohja
--comp-bgrgba(0,0,0,.45)Composer-tummennos (focus: .6)
--row-bgrgba(0,0,0,.25)FAQ/option-boksit (hover: .35)
--pill-bgrgba(0,0,0,.3)Pillit & togglet (hover: .4)
--bdrgba(255,255,255,.07)Hairline-border (hover: .14)
--tmrgba(245,246,247,.62)Toissijainen teksti
--tfrgba(245,246,247,.38)Placeholder & himmein teksti
--asfrgba(81,163,90,.16)Aksentin soft-tausta + focus-rengas

Typography #

Inter (400–700) kaikkeen. Otsikoissa tiukka negatiivinen välistys (−0.02…−0.035em), eyebrow-otsikoissa harva versaali (+0.14em). Widgetin leipäteksti 14–15 px.

RooliKoko / rivi / välistys / painoEsimerkki
Home title28px / 1.1 / -0.03em / 600Miten voin auttaa?
Flow heading22px / 1.2 / -0.025em / 600Millainen tarve?
Body14px / 1.5–1.6 / -0.01em / 400Kysy AI:lta tai valitse vaihtoehdoista.
Chip / pieni UI12.5px / 1 / 0 / 500Hinta-arvio
Eyebrow10.5px / 1.2 / +0.14em / 600 / uppercaseUSEIN KYSYTTYÄ

Radius & Spacing #

Pilli (999px) on järjestelmän tunnistettavin muoto — kaikki napit, chipit ja togglet. Kortit ja paneelit 14–18 px, inputit ja rivit 12 px. Base unit 4 px.

ElementtiRadiusPreview
Pillit, napit, chipit, tabit999px999
Composer, CTA-kortti, paneelikortit16–18px18
Option-kortit (flow)14px14
Inputit, FAQ-rivit12px12
Ikoninapit10px10
Widget-paneeli24px24

Spacing scale (4px base)

Sisäiset gapit6 / 8 / 12 / 14px
Paddingit14–16px (rivit) · 14px 16px (composer) · 22px (näkymät)
Osioiden välit18–22px (widget) · 80px (sivusto)

Glass, Blur & Shadows #

Signature-efekti: läpikuultava tumma pinta + backdrop-filter: blur() saturate(140%) terävän valokuvan päällä. Kolme blur-tasoa eri rooleihin. Alla live-lasi kuvan päällä.

blur(40px)
Trigger-pilli — raskain frost
blur(20px)
Composer, rivit, optiot
blur(2px)
Sivun backdrop widgetin takana
Resepti: tumma pinta = rgba-musta (.25–.55) + blur + saturate(140%) + hairline-border rgba(255,255,255,.06–.12). Kuva pysyy terävänä — vain lasin takana oleva sumenee.

Shadow-tokenit

NimiArvoKäyttö
widget-sh (dark)0 30px 80px -30px … + inset shimmerPaneelin nosto + lasin yläreunan kiilto
cta-glow0 4px 18px -6px rgba(81,163,90,.55)Vihreä hehku primäärinapin alla
trigger-sh0 10px 30px -12px rgba(0,0,0,.55)Trigger-pilli (hover: 0 16px 36px -12px .65)
toggle-sh0 1px 3px … , 0 1px 2px …Aktiivinen toggle/tab-pilli
focus-ring0 0 0 4px rgba(81,163,90,.16)Input-focus, aina aksenttivihreä

Motion #

Yksi easing kaikkeen mikro-interaktioon: cubic-bezier(.2,.8,.2,1). Hover = nousu 1–2 px + borderin kirkastus. Paneelit liukuvat 550 ms, sisältö 200–350 ms.

TokenKesto / easingKäyttö
standard200ms · cubic-bezier(.2,.8,.2,1)Hover, väri, borderit
enter300–350msViestit & näkymät sisään (fade + 6–8px nousu)
panel550msWidget-paneelin liuku oikealta
expressive (sivusto)525ms · cubic-bezier(.625,.05,0,1)Valikon avaus, isot siirtymät

Trigger Pill #

Kelluva "Kysy tekoälyltä" -pilli sivun oikeassa alakulmassa. Near-black lasi 50 % + blur(40px), hairline-border, sparkle-ikoni. Aina tumma — myös vaalealla sivulla. Hover nostaa 2 px.

.rvf-trigger.rvf-trigger__icon.rvf-trigger__label
Tuotannossa: position: fixed; bottom: 24px; right: 24px. Mobiili: 50px korkeus, 18px marginaalit.

Buttons #

Primääri = Forest Signal -pilli valkoisella tekstillä. Send-nappi on valkoinen ympyrä tummalla (kääntyy tummaksi vaalealla). Ikoninapit ovat läpinäkyviä, hover tuo pinnan + borderin esiin.

.rvf-btn.rvf-composer__send.rvf-icon-btn.rvf-home__cta-btn.rvf-flow__back
Hover-kaava: primääri → #6bbf74 (dark) / #3f8748 (light) + translateY(-1px). Ei koskaan kulmikkaita nappeja — pilli on pakollinen.

Chips #

Quick-chipit composerin alla. Neutraali lasichip + yksi aksenttichip per näkymä (esim. Hinta-arvio). Vaalealla teemalla chipit muuttuvat valkoisiksi korteiksi varjolla.

.rvf-chip.rvf-chip--accent.rvf-home__chips
Sääntö: korkeintaan yksi aksenttichip per rivi — vihreä on signaali, ei koriste.

Theme Toggle #

Kaksipaikkainen pillitoggle composerin vasemmassa reunassa (aurinko/kuu). Aktiivinen puoli saa pinnan + toggle-varjon.

.rvf-theme.rvf-theme__btn.is-active

Composer #

Widgetin sydän: lasipaneeli (rgba-musta 45 % + blur 20px + saturate 140 %), radius 18px, sisällä reunaton textarea ja työkalurivi. Focus syventää tummennuksen (.6) ja kirkastaa borderin (.18). Kokeile klikata kenttää.

.rvf-composer.rvf-composer__textarea.rvf-composer__bar.rvf-composer__model.rvf-composer__send
Anatomia: textarea (min 44px, max 140px) → bar: vasemmalla teematoggle, oikealla mallipilli + send. Chat-näkymässä variantti .rvf-composer--bottom (radius 16px, tiiviimpi padding).

Mini Popup #

Avautuu trigger-pillistä: kompakti composer + brändirivi + X-nappi. Pakotettu tumma teema syvemmällä tummennoksella (55 %) — pysyy tummana myös vaalealla sivulla. Submit avaa täyden widgetin.

.rvf-pop.rvf-pop__brand.rvf-pop__close
Tuotannossa: position: fixed 24/24, width 340px, avautuu translateY(12px) scale(.96) → 0/1, transform-origin bottom right.

Suggestion Rows #

Tummat boksirivit (FAQ, ehdotukset): rgba-musta 25 % + blur, radius 12px. Hover siirtää riviä 2 px oikealle ja nuoliympyrä täyttyy vihreällä kääntyen −45°. Eyebrow-otsikko ryhmän yllä.

.rvf-home__section.rvf-home__heading.rvf-home__row.rvf-home__row-arrow

Usein kysyttyä

CTA Card #

Ainoa vihreäpohjainen pinta widgetissä: diagonaali gradientti aksentista (.18 → .06), vihreä border (.3), sisällä otsikko + alarivi ja pillinappi. Koko kortti on klikattava.

.rvf-home__cta.rvf-home__cta-content.rvf-home__cta-title.rvf-home__cta-sub.rvf-home__cta-btn

Chat Messages #

Epäsymmetrinen chat: käyttäjän viesti on valkoinen pilli oikealla, AI vastaa ilman kuplaa suoraan pinnalla (14.5px / 1.6). Typing-indikaattori kolmella pomppivalla pisteellä. Vastauksen alle voi liittää pillitoiminnot.

.rvf-chat.rvf-msg--user.rvf-msg--ai.rvf-msg__bubble.rvf-typing.rvf-msg__actions.rvf-msg__action
Paljonko Revdot maksaa?

Revdotin hinnoittelu alkaa 30 €/kk ja skaalautuu käytön mukaan. Tarkan arvion saat parissa minuutissa hinta-arviotyökalulla.

Sisääntulo: jokainen viesti animoituu opacity 0 → 1 + translateY(6px) → 0, 350ms. Chat-ehdotukset (.rvf-chat__suggestions .rvf-chip) läpinäkyvinä composerin yllä.

Flow: Progress & Steps #

Monivaiheisen flown yläosa: takaisin-pilli, vaiheilmaisin ja hinta oikealla. Alla 3 px progress-palkki aksentilla.

.rvf-flow__top.rvf-flow__back.rvf-flow__step-label.rvf-flow__progress.rvf-flow__progress-bar
Vaihe 2 / 5
Hinta-arvio: 420 €

Flow: Option Cards #

Radiovalinta korttiriveinä: sama tumma boksipinta kuin FAQ-riveillä (radius 14px), radio oikeassa yläkulmassa. Valittu kortti saa aksenttiborderin + 1 px renkaan + vihreän häivepinnan.

.rvf-flow__options.rvf-flow__option.is-selected.rvf-flow__option-radio.rvf-flow__option-title.rvf-flow__option-sub.rvf-flow__option-price

Millaiseen tarpeeseen?

Valitse lähin vaihtoehto — tarkennetaan myöhemmin.

Flow: Inputs #

Tekstikentät samalla boksipinnalla (radius 12px). Focus: aksenttiborder + 4 px vihreä rengas + pinta tummenee kiinteämmäksi. Label pienellä muted-tekstillä kentän yllä. Kokeile fokusoida.

.rvf-flow__inputinputtextarea
Focus-resepti: border-color: var(--a) · background: rgba(26,28,33,.85) · box-shadow: 0 0 0 4px rgba(81,163,90,.16).

Widget Panel #

Koko paneeli koottuna (home-näkymä): terävä taustakuva + gradientti-fade ylhäältä läpinäkyvästä alas opaakkiin, header, keskitetty hero + composer + chipit, FAQ ja footer-tabit. Tuotannossa full-height side sheet (540 px), joka liukuu oikealta 550 ms.

.rvf-widget.rvf-widget__body.rvf-view--home.rvf-home__scroll.rvf-home__hero
Näkymälogiikka: data-active-view="chat|flow" vaihtaa ::after-kerroksen gradientista frosted-lasiksi (rgba(10,12,16,.55) + blur 20px) — kuva ei lataudu uudelleen, vain overlay vaihtuu.