Reference · v1.0.0

Every word of Kaury

Generated from the vocabulary of the compiler: this page cannot drift from what Kaury really accepts.

Elements

section

a part of the page

section flavors

header

site header

header

footer

page footer

footer

nav

navigation

nav

grid

grid of columns

grid 3 columns, gap 24

column

stacks its children vertically

column gap 12

row

puts its children side by side

row gap 12

box

simple container

box padding 24

card

card (image + text)

card "Strawberry" "strawberry.png"

title

main heading

title "Hello", size 64

subtitle

secondary heading

subtitle "Our flavors"

text

paragraph

text "Welcome {name}"

image

image

image "photo.jpg", radius 16

video

video

video "film.mp4", autoplay, loop

link

link

link "Contact" "/contact"

links

menu of links

links Home, Flavors, Shop

logo

logo linking to the home page

logo "crush.svg"

button

button

button "Buy" -> cart.add can

form

form (-> action on submit)

form -> send "/api", { email }

field

input bound to a state

field email "Your email", type email

textarea

multi-line text area

textarea message "Your message"

select

dropdown list

select size "S", "M", "L"

checkbox

checkbox

checkbox agree "I agree"

list

bulleted list

list

item

list item

item "Free delivery"

icon

icon (emoji or character)

icon "★"

divider

separator line

divider

spacer

empty space

spacer 48

markdown

Markdown text rendered as rich text (titles, lists, links)

markdown post.body

details

a question or title that opens on click to show what is below

details "Is it free?"

embed

another page shown inside this one (map, video, app)

embed "https://…", "Map of the shop"

slot

inside a component: where the content given between its lines goes

slot

scene

2D or 3D immersive area

scene

object

object .glb, .gltf, .png, .svg, .json (Lottie)

object can "crush.glb"

character

animated object with named animations

character "mascot.glb"

sound

sound or music, with a mute button

sound "ambient.mp3", loop

Style options

On the element line or in a style line. Numbers without unit are pixels.

background

background color, gradient or image

background cream

color

text color

color #333

font

typeface

font "Clash Display"

size

text size (or object size)

size 24

bold

bold text

bold

light

thin text

light

weight

font weight (100 to 900)

weight 600

italic

italic text

italic

upright

not italic (an emphasis shown by its color alone: style emphasis, then upright, color accent)

upright

underline

underlined text

underline

plain

no underline (links)

link "Docs" "/docs/", plain

uppercase

uppercase text

uppercase

line-height

line height (1.5 = one and a half)

line-height 1.6

tracking

space between letters

tracking 2

align

text alignment — left | center | right | justify

align center

center

centers the content

center

middle

sits in the middle of its row or of its grid line (a text next to a tall photo)

column middle

radius

corner radius

radius 12

round

fully round corners

round

shadow

drop shadow (hard + a color: the offset shadow of brutalist designs) — soft | medium | strong | hard | none | inner

shadow soft / shadow hard pink

glow

neon light around the element, or around the letters of a text

glow pink 30

text-glow

neon light around the letters

text-glow cyan

stroke

letters drawn as an outline only

stroke 2 black

mesh

mesh gradient: soft colored lights melting into the background

mesh pink purple orange

border

border (width, color)

border 1 gray

border-top

line above (width, color)

border-top 2 black

border-bottom

line below (width, color)

border-bottom 1 gray

pin

placed over its parent: pin bottom right, pin top 20 left 10%

pin bottom right

clip

hides what overflows

clip

no-wrap

keeps everything on one line (for a ticker)

row no-wrap

grain

paper grain texture (on the site style: the whole page)

style background cream, grain

margin

space around (1 to 4 values)

margin 24

padding

inner space (1 to 4 values)

padding 32

gap

space between children (one value, or rows then columns)

gap 24

width

width

width 320

height

height

height 400

max-width

maximum width

max-width 720

min-height

minimum height

min-height 300

fullscreen

fills the whole screen height

fullscreen

full-width

fills the whole width, no margins

full-width

zoom

shows it smaller (or bigger) with the same layout, like a thumbnail of a page: embed …, zoom 0.5

embed "/demo/", "Demo", zoom 0.5, height 1200

opacity

opacity from 0 to 1

opacity 0.8

blur

blur

blur 8

grayscale

black and white, from 0 to 1 (photos from different sources brought to one look; hover grayscale 0 gives the colors back)

image "ada.jpg", "Ada, coach", grayscale

shade

darkens the background picture so the text in front stays readable (0 to 1; with a side, only toward that side) — top | bottom | left | right

section hero, background "hall.jpg", shade 0.6 / shade 0.8 bottom

glass

frosted glass effect

glass

gradient

gradient background (2 or 3 colors, angle)

gradient pink orange

text-gradient

gradient text

text-gradient pink purple

columns

number of columns, or their widths

grid 3 columns / grid columns 2 1

direction

direction of the children — row | column

direction row

hidden

hides the element (always, or while a condition is true)

mobile hidden / hidden (tab != 1)

sticky

stays at the top while scrolling (distance from the top)

sticky 96

front

goes in front of other elements

front

cursor

cursor shape — pointer | arrow | text | none

cursor pointer

hover

style when the mouse is over it

hover lift 4

lift

moves up

hover lift 4

grow

enlarges (1.1 = +10 %)

hover grow 1.05

tilt

tilts (degrees)

tilt -3

move

moves the element (x, y), for hover and animations

move -50% 0

reveal

shows only the top part (0% to 100%), for animations

reveal 100%

animate

simple entrance — fade | lift | zoom | left | right

animate fade

class

CSS classes of your own (replaces the default look)

box class "hero"

look

a class of your own added to the default look, styled in a css block

grid 3 columns, look "pricing"

tag

exact HTML tag

box tag "figure"

attr

HTML attribute (name, value)

box attr "aria-hidden" "true"

id

id of the element (anchor)

box id "prices"

selected

selected tab or item (a style can say how it looks: selected …)

button "Code", selected (tab == 0)

current

the current page or step (current …)

link "Docs" "/docs/", current (route.path == "/docs/")

open

a details element shown open

details "Price?", open

html

content written in HTML (trusted text only)

text "Hello<br>world", html

Motions

spin

spins: spin, spin 90/s, spin on scroll, spin x

spin on scroll

float

floats gently: float, float 0.3

float

jump

jumps (once as an action, otherwise regularly)

on click -> jump

pulse

grows and shrinks rhythmically

pulse

sway

sways left and right

sway

follows mouse

reacts to the mouse: follows mouse, smooth

follows mouse, smooth

enters from

entrance: left, right, top, bottom, fade, zoom

enters from left

parallax

moves faster or slower than the scroll

parallax 0.3

says

speech bubble

says "Hi!"

play

plays a named animation

play "dance"

Functions and values

print

prints a value in the console

affiche, log

load

loads data (JSON or text): await load "/api/products"

charge

send

sends data: await send "/api", { email }

envoie, post

sum

sum of a list: sum cart, a -> a.price

somme

average

average of a list

moyenne, avg

min

smallest value

minimum

max

largest value

maximum

round

rounds: round 3.14159, 2

arrondi

floor

rounds down

plancher

ceil

rounds up

plafond

abs

absolute value

absolu

sqrt

square root

racine

random

random number: random 1, 6

aleatoire

pick

random item of a list

hasard

length

number of items or letters

longueur, len

now

current date and time

maintenant

to-text

converts to text

en-texte, str

to-number

converts to a number

en-nombre, num

price

formats a price: price 12.5 → "CHF 12.50"

prix, money

format-number

a number as people read it: format-number 23490 → "23,490" (in the language of the site); format-number 3.14159, 2 → "3.14"

formate-nombre

to-date

a date from a text: to-date "2027-06-12 14:00" (one date minus another: the milliseconds between them)

en-date

format-date

formats a date: format-date now()

shuffle

shuffles a list

melange

image-size

real size of an image of the site: image-size "photo.jpg" → { width, height }

taille-image

range

list of numbers: range 1, 5

intervalle

every

repeats an action: every 2s, -> count += 1

repete, repeat

later

delayed action: later 1s, -> close menu

plus-tard

persist

keeps a state in the browser: persist "cart", cart

memorise

copy

copies a text to the clipboard

copie

confetti

throws confetti on the screen

confettis

vibrate

makes the phone vibrate

vibre

scroll-to

scrolls to a section: scroll-to "flavors"

defile

share

opens the phone share sheet

partage

json-ld

structured data for Google and AIs, given to head: head json-ld { "@type": "FAQPage" }

donnees-structurees

slug

text → address-friendly form: slug "Hello world" → "hello-world"

base64

text → base64, for links that carry code or data: base64 "Hello"

encode-url

text made safe inside an address: encode-url "a b" → "a%20b"

encode-adresse

mouse

mouse position: mouse.x, mouse.y (from -1 to 1)

scroll

page scroll progress, from 0 to 1

screen

screen size: screen.width, screen.mobile

route

current page: route.path, route.params.id

objects

named 3D objects of the page

Immersion words

light

studio, soft, sunset, night, neon, day, dramatic

light sunset

camera

fixed, follows mouse, fly, free, orbit

camera follows mouse

particles

stars, snow, bubbles, dust, confetti

scene fullscreen, particles stars

transition

fade, slide, zoom, curtain, none

transition fade

French keywords

Every keyword has a French alias. Accents are optional.

let

soit, const

state

etat

function

fonction, fn

then

puis, alors

if

si

else

sinon

for

pour

in

dans

while

tant

await

attends, wait

try

essaie

catch

erreur

import

importe

from

de, depuis

as

comme

export

exporte

return

retourne

break

arrete

true

vrai

false

faux

none

rien, aucun, null, nothing

and

et

or

ou

not

non

open

ouvre

close

ferme

toggle

bascule

go

aller, goto

js

javascript

component

composant

tablet

tablette

desktop

ordinateur

colors

couleurs

font

police

fonts

polices

lang

langue, language

url

adresse

alternate

traduction, alternates, hreflang

head

tete

wrapper

enveloppe

light

lumiere, lighting

on

au

click

clic

hover

survol

scroll

defilement

load

chargement

follows

suit, follow

mouse

souris

enters

entre, enter

spin

tourne, rotate, turn

float

flotte

jump

saute

sway

balance

says

dit, say

play

joue

parallax

parallaxe