I ruby markup (o annotazioni ruby o semplicemente ruby (ルビ?, rubi)) sono brevi sequenze di testo affiancate al testo base, tipicamente utilizzate nei documenti dell'Asia orientale per indicare la trascrizione fonetica di parole cinesi (pinyin) o giapponesi (furigana) o per fornire brevi annotazioni. Il nome deriva dall'omonima unità di misuratipografica corrispondente a 5 punti[1][2].
I seguenti valori di visualizzazione assegnano ruoli di layout ruby a un elemento arbitrario[3]:
ruby
Specifica che un elemento genera un contenitore ruby. (Corrisponde agli elementi<ruby> HTML/XHTML.)
ruby-base
Specifica che un elemento genera un contenitore ruby di base. (Corrisponde agli elementi <rb>HTML/XHTML.)
ruby-text
Specifica che un elemento genera una casella di annotazione ruby. (Corrisponde agli elementi<rt> HTML/XHTML.)
ruby-base-container
Specifica che un elemento genera un contenitore ruby di base. (Corrisponde agli elementi<rbc>XHTML; generato come una casella anonima in HTML.)
ruby-text-container
Specifica che un elemento genera una casella contenitore di annotazioni ruby. (Corrisponde agli elementi<rtc> HTML/XHTML.)
alternate
Diversi livelli di annotazioni si alternano tra sopra e sotto.
over
L'annotazione in ruby appare al di sopra della base.
under
L'annotazione ruby appare in linea sotto la base. Questa è un'impostazione relativamente rara utilizzata nei sistemi di scrittura ideografici dell'Asia orientale, più facilmente riscontrabile nel testo educativo.
inter-character
Simile adover
separate
Ogni casella di annotazione ruby è resa all'interno della stessa colonna come la sua casella di base corrispondente, cioè senza basi adiacenti sovrapposte su entrambi i lati.
merge
Tutte le caselle di annotazione ruby all'interno dello stesso segmento e sulla stessa linea sono concatenate come caselle "inline" all'interno del loro contenitore di annotazioni e disposte in una singola casella di annotazione ruby anonima che copre tutte le caselle di base ruby associate.
auto
L'interprete può utilizzare qualsiasi algoritmo per determinare come ogni casella di annotazione ruby viene resa nella casella di base corrispondente, con la conseguenza che se tutte le annotazioni si adattano alle rispettive basi, il risultato è identico a separate, ma se alcune annotazioni sono più larghe della loro basi lo spazio è condiviso per evitare di imporre spazio tra le basi.
Proprietà
Nome
Valore
Iniziale
Si applica a
Ereditato
Valore di animazione
Ordine canonico
Valore calcolato
ruby-align
start | center | space-between | space-around
space-around
basi ruby, annotazioni di ruby, contenitori di base di ruby, contenitori di annotazioni di ruby
si
dipende dal valore immesso
dipende dalla grammatica
keyword
specificata
ruby-merge
separate | merge | auto
separate
contenitori di annotazione ruby interlineare
si
dipende dal valore immesso
dipende dalla grammatica
keyword
specificata
ruby-overhang
auto | none
auto
contenitori per annotazioni ruby
si
dipende dal valore immesso
dipende dalla grammatica
keyword
specificata
ruby-position
[ alternate || [ over | under ] ] | inter-character