Sto progettando uno schema di dati basato su JSON per descrivere l'aspetto visivo di blocchi simili agli elementi HTML. Dovrebbe sembrare familiare a qualcuno ben informato in HTML / CSS, ma è più restrittivo a causa dei vincoli dell'ambiente in cui verrà utilizzato.
Ora non sono sicuro di come modellare la "larghezza". Sono accettabili valori di pixel compresi tra 0 e infinito positivo o valori percentuali compresi tra 0 e 100, ma nessun punto, ems, rems o qualsiasi altra cosa.
Ho in mente tre alternative:
Primo: una proprietà con formati diversi
{
"width": 300,
"width": "300",
"width": "300px",
"width": "50%"
}
2 °: due proprietà esclusive mutue separate
{
"width": 300,
"width-relative": 50
}
Terzo: una proprietà e un flag booleano
{
"width": 50,
"relative-width": true
}
Tutti hanno i loro pro e contro in termini di somiglianza con HTML / CSS, facilità di convalida, concisione, coerenza, ... Ho un preferito, il mio collega ne ha uno diverso.
Quale sceglieresti e perché?