Bättre support för färger

Bättre support för färger

Taggen [color] kan användas för att ge text en viss färg:

[color="#F00"]röd text[/color]

röd text

Men det fungerar inte att använda rgb()- eller hsl()-syntax:

[color="rgb(255, 0, 0)"]röd text[/color] [color="hsl(0, 100%, 50%)"]röd text[/color]

Det är dels enklare för en människa att beskriva en färg med rgb()-syntax än med #RRGGBB, och det kan dels hända att man av någon anledning har text med många förekomster av sådan formatering som man vill klistra in i forumet utan att krångla med att omvandla till hex.

Det verkar inte heller gå att reglera textens opacitet, varken med rgba()-, hsla()- eller #RRGGBBAA-notation:

[color="rgba(255, 0, 0, 0.5)"]röd halvgenomskinlig text[/color] [color="hsla(0, 100%, 50%, 0.5)"]röd halvgenomskinlig text[/color] [color="#FF000080"]röd halvgenomskinlig text[/color]

Det hade varit trevligt om det gick att använda rgba() iallafall. HSL känner jag personligen mindre behov av.

Hej @Alling

Innan jag kan ge dig ett riktigt svar så måste jag fråga vad det nya färgsystemet är tänkt att användas till? Jag förstår att det ger fler möjligheter att använda färg i forumet men för att veta om det är någonting som är värt att överväga så vore det bra att få veta mer konkreta användningsområden (där hex inte räcker till). Samt för att kunna utvärdera hur många som skulle få nytta av en sådan uppdatering.

Skrivet av Gurtis:

Hej @Alling

Innan jag kan ge dig ett riktigt svar så måste jag fråga vad det nya färgsystemet är tänkt att användas till? Jag förstår att det ger fler möjligheter att använda färg i forumet men för att veta om det är någonting som är värt att överväga så vore det bra att få veta mer konkreta användningsområden (där hex inte räcker till). Samt för att kunna utvärdera hur många som skulle få nytta av en sådan uppdatering.

Det finns åtminstone två fördelar med rgb() gentemot #RRGGBB:

  • Det är betydligt lättare för en människa att beskriva en färg med decimal än med hexadecimal notation.

  • Man kan ha fått text formaterad med rgb()-syntax från någon extern källa, till exempel ett program. Så var till exempel fallet när jag demonstrerade hur man skulle kunna använda färger i feedbacktråden om mellandagsrean. I det fallet var det mitt eget program som jag enkelt kunde redigera på stående fot, så jag behövde "bara" skriva en funktion för att översätta från #RRGGBB till rgb(); i annat fall hade det varit betydligt jobbigare.

Sedan kan det finnas fler fördelar som är svåra att förutse här och nu. Det finns iallafall en begränsning som inte tillför någon uppenbar fördel för användaren, men som kan vara en nackdel (som för mig nyligen).

Det är svårt att bedöma hur många som skulle få nytta av förbättringen, eftersom det är svårt att veta hur många som försökt använda rgb()-syntax och misslyckats, eftersom det knappast är en gigantisk bugg som man självklart rapporterar eller kommenterar.

Opacitet

Samma sak som ovan gäller förstås här: Decimal notation är enklare för människor att hantera än hexadecimal. Men det är klart att det hade varit en förbättring även om det bara lades till stöd för #RRGGBBAA och inget mer.

Eftersom stöd för opacitet vore en bit ny funktionalitet – inte bara mer flexibel notation – finns här ännu större potential till användningsområden som i dagsläget ej kan förutses.

Tidskrävande?

Eftersom jag inte kan se koden är det svårt för mig att bedöma hur tidskrävande en sådan uppgradering är, men jag har ett par tankar kring det:

  • Kan man inte bara låta CSS-egenskapen color bli precis den sträng som användaren skriver in (efter samma sanering som görs på all annan input, såklart)? Så fungerar [font]-taggen; varför måste [color] vara mer begränsad? EDIT: Jag får rätta mig själv här. Det görs uppenbarligen någon typ av sanitetskoll på [font].

  • Att lägga till stöd för opacitet med #RRGGBBAA-syntax, utan att ändra något annat, borde inte vara mycket knepigare än så:

    -^#([A-F\d]{3}){1,2}$ +^#(([A-F\d]{3}){1,2}|([A-F\d]{4}){1,2})$

Senast redigerat 2019-01-09 22:58