Funkce CSS color-mix() byla představena v Chrome 111. Tento článek vysvětluje, jak tuto funkci používat k míchání barev v šablonách stylů.

Míchejte barvy v jakémkoli z podporovaných barevných prostorů přímo z vašeho CSS.

Před funkcí CSS color-mix() ke ztmavení, zesvětlení nebo desaturaci barvy použili vývojáři preprocesory CSS nebo funkci calc() pro barevné kanály.

.color-mixing-with-sass 
/* Sass: поровну смешать красный и белый */
--red-white-mix: color.mix(red, white);
>

Sass odvedl skvělou práci, aby zůstal o krok před specifikací barev CSS. Neexistoval však žádný skutečný způsob, jak míchat barvy v CSS. Abyste se přiblížili, musíte provést výpočty dílčích hodnot barev. Zde je zmenšený příklad toho, jak dnes CSS může simulovat prolnutí:

.color-mixing-with-vanilla-css-before 
--lightness: 50%;
--red: hsl(0 50% var(--lightness));

/* добавить "белый" к красному
добавив 25% яркости к каналу
*/

--lightred: hsl(0 50% calc(var(--lightness) + 25%);
>

color-mix() vám dává možnost míchat barvy v CSS. Návrháři si mohou vybrat, do kterého barevného prostoru se budou míchat a jak dominantní by měla být každá barva ve směsi.

.color-mixing-after 
/* поровну смешать красный с белым */
--red-white-mix: color-mix(in oklab, red, white);

/* поровну смешать красный с белым в srgb */
--red-white-mix-srgb: color-mix(in srgb, red, white);
>

To je to, co potřebujeme. Flexibilita, výkon a plnohodnotné API.

Míchání barev v CSS pomocí color-mix()

CSS existuje v mnoha barevných prostorech a barevných gamutech, takže není nutné specifikovat barevný prostor pro míchání. Různé barevné prostory navíc mohou výrazně změnit výsledky míchání, takže znalost efektů barevného prostoru vám pomůže dosáhnout požadovaných výsledků.

Pro informaci vyzkoušejte tento interaktivní nástroj color-mix():

  • Prozkoumejte účinky každého barevného prostoru.
  • Prozkoumejte účinky interpolace odstínů při prolnutí (lch, oklch, hsl a hwb).
  • Změňte míchané barvy kliknutím na jedno z horních dvou barevných polí.
  • Pomocí posuvníku změňte poměr míchání.
  • Vygenerovaný kód CSS color-mix() je k dispozici níže:

Míchání v různých barevných prostorech v color-mix()

Výchozí barevný prostor pro prolnutí (a přechody) je oklab. Poskytuje konzistentní výsledky. Můžete určit alternativní barevné prostory a přizpůsobit tak míchání vašim potřebám.

Vezměme si například černou a bílou. Barevný prostor, ve kterém jsou namíchány, nebude příliš velký rozdíl, že? Špatně.

color-mix(in srgb, black, white); 
color-mix(in srgb-linear, black, white);
color-mix(in lch, black, white);
color-mix(in oklch, black, white);
color-mix(in lab, black, white);
color-mix(in oklab, black, white);
color-mix(in xyz, black, white);

Má to skvělý efekt!

Vezměme si jako další příklad modrou a bílou. Vybral jsem je konkrétně proto, že se jedná o případ, kdy tvar barevného prostoru může ovlivnit výsledky. V tomto případě se většina barevných prostorů změní na fialovou, když přejdou z bílé do modré. To také ukazuje, jak je oklab spolehlivým barevným prostorem pro míchání, že se nejvíce blíží očekáváním většiny lidí pro míchání bílé a modré (žádná fialová)

color-mix(in srgb, blue, white); 
color-mix(in srgb-linear, blue, white);
color-mix(in lch, blue, white);
color-mix(in oklch, blue, white);
color-mix(in lab, blue, white);
color-mix(in oklab, blue, white);
color-mix(in xyz, blue, white);

Naučit se efekty barevného prostoru pomocí color-mix() je také skvělá znalost pro vytváření přechodů. Syntaxe barev umožňuje přechodům určit barevný prostor, kde přechod ukazuje prolnutí v rámci oblasti prostoru.

.black-to-white-gradient-in-each-space 
--srgb: linear-gradient(to right in srgb, black, white);
--srgb-linear: linear-gradient(to right in srgb-linear, black, white);
--lab: linear-gradient(to right in lab, black, white);
--oklab: linear-gradient(to right in oklab, black, white);
--lch: linear-gradient(to right in lch, black, white);
--oklch: linear-gradient(to right in oklch, black, white);
--hsl: linear-gradient(to right in hsl, black, white);
--hwb: linear-gradient(to right in hwb, black, white);
--xyz: linear-gradient(to right in xyz, black, white);
--xyz-d50: linear-gradient(to right in xyz-d50, black, white);
--xzy-d65: linear-gradient(to right in xyz-d65, black, white);
>

Pokud vás zajímá, jaký je nejlepší barevný prostor, žádný neexistuje. A proto je tolik možností! Také by nebyly vynalezeny žádné nové barevné prostory (viz oklch a oklab), pokud by jeden z nich byl nejlepší. Každý barevný prostor může mít jedinečný okamžik, kdy zazářit a být tou správnou volbou.

ČTĚTE VÍCE
Kdy zasadit chlorophytum?

Pokud například chcete dosáhnout zářivého prolnutí, použijte hsl nebo hwb . V následujícím ukázce jsou dvě jasné barvy (purpurová a limetková) smíchány dohromady a hsl a hwb poskytují jasné výsledky, zatímco srgb a oklab vytvářejí desaturované barvy.

Pokud je pro vás důležitá konzistence a jemnost, použijte oklab. V následujícím demu, který míchá modrou a černou, vytváří hsl a hwb příliš jasné barvy s offsetovými odstíny, zatímco srgb a oklab vytvářejí tmavší modrou.

Poté, co strávíte několik minut na hřišti mixu barev (), testováním různých barev a barevných prostorů, začnete pociťovat výhody každého prostoru. Očekávejte také další pokyny k barevným prostorům, protože se všichni přizpůsobujeme jejich možnostem v našich uživatelských rozhraních.

Nastavení metody interpolace odstínu

Pokud zvolíte prolnutí pro válcový barevný prostor, tzn. jakýkoli barevný prostor s barevným kanálem zabírajícím úhel. Můžete určit, zda bude interpolace kratší kratší, delší delší, klesající klesající nebo rostoucí rostoucí. Pokud se chcete dozvědět více, je to dobře popsáno v HD Color Guide.

Pokud je barevný prostor cylindrický, hřiště color-mix() přidá další rozevírací seznam výběru. Můžete si s tím pohrát, abyste viděli efekty prolnutí.

Zde je stejný příklad kombinace modré a bílé, ale tentokrát pouze ve válcových prostorech s různými metodami interpolace odstínů.

Zde je další Codepen, který jsem vytvořil, abych pomohl vizualizovat interpolaci odstínů, ale speciálně pro přechody. Věřím, že vám to pomůže pochopit, jak každý barevný prostor vytváří výsledek míchání, když je specifikována interpolace odstínů, podívejte se na to!

výstraha: Poskytnutí metody interpolace odstínu pro necylindrický barevný prostor je syntaktická chyba v color-mix() .

Míchání barev v color-mix() s různými syntaxemi barev

Dosud jsme většinou míchali pojmenované barvy CSS, jako je modrá a bílá. Míchání barev CSS umožňuje míchat barvy ze dvou různých barevných prostorů. To je další důvod, proč je určení barevného prostoru pro míchání důležité, protože vytváří společný prostor, když barvy nejsou ve stejném barevném prostoru.

color-mix(in oklch, hsl(200deg 50% 50%), color(display-p3 .5 0 .5));

V tomto příkladu budou hsl a display-p3 převedeny na oklch a poté smíchány. Docela cool a flexibilní.

ČTĚTE VÍCE
Kolik nohou má vodní cyklista?

Úprava proporcí míchání barev v color-mix()

Je nepravděpodobné, že budete potřebovat stejné části každé barvy při každém smíchání, jak ukazuje většina příkladů. Dobrá zpráva, existuje syntaxe pro určení, kolik z jednotlivých barev by mělo být ve výsledném mixu viditelné.

Chcete-li začít toto téma, zde je příklad mixů, které jsou všechny ekvivalentní (a ze specifikace):

.ratios-syntax-examples 
/* опустить процент для равных пропорций */
color: color-mix(in lch, purple, plum);
color: color-mix(in lch, plum, purple);

/* процент может указываться по обе стороны от цвета */
color: color-mix(in lch, purple 50%, plum 50%);
color: color-mix(in lch, 50% purple, 50% plum);

/* процент только для одного цвета? другой получает остаток */
color: color-mix(in lch, purple 50%, plum);
color: color-mix(in lch, purple, plum 50%);

/* проценты > 100% пропорционально сжимаются */
color: color-mix(in lch, purple 80%, plum 80%);
/* вышеприведённый мик сжимается до этого */
color: color-mix(in lch, purple 50%, plum 50%);
>

Věřím, že tyto příklady dobře zdůrazňují okrajové případy. První sada ukazuje, že 50 % je volitelných, ale lze je specifikovat dodatečně. Poslední příklad ukazuje zajímavý případ: když poměry po sečtení překročí 100 %, jsou proporcionálně omezeny na 100 %.

Všimněte si také, že pokud pouze jedna barva určuje poměr, druhá se považuje za zbytek až do 100 %. Zde je několik dalších příkladů ilustrujících toto chování.

color-mix(in lch, purple 40%, plum) /* plum присваивается 60% */ 
color-mix(in lch, purple, 60% plum) /* purple присваивается 40% */
color-mix(in lch, purple 40%, plum 60%) /* нет автоматического присваивания */

Tyto příklady ilustrují dvě pravidla:

  1. Když poměry překročí 100 %, jsou komprimovány a distribuovány rovnoměrně.
  2. Pokud je zadán pouze jeden poměr, druhá barva se nastaví na 100 % mínus tento poměr.

Poslední pravidlo je o něco méně zřejmé. Co se stane, když jsou procenta pro obě barvy, ale jejich součet není 100 %?

color-mix(in lch, purple 20%, plum 20%)

Tato kombinace barev-mix() vede k průhlednosti, 40% průhlednosti. Když poměr není 100 %, výsledná směs bude průhledná. Žádná z barev nebude zcela smíchána.

ČTĚTE VÍCE
Jak pít kasii?

Nesting color-mix()

Stejně jako u všeho v CSS je vnořování zpracováno podle očekávání dobře. Vnitřní funkce jsou vyřešeny jako první a vrátí své hodnoty do nadřazeného kontextu.

color-mix(in lch, purple 40%, color-mix(plum, white))

Klidně investujte tolik, kolik potřebujete, abyste dosáhli požadovaného výsledku.

Vytvoření světlého a tmavého barevného schématu pomocí color-mix()

Pojďme vytvořit barevná schémata pomocí color-mix()!

Základní barevné schéma s mixem barev()

Následující příklad vytvoří světlý a tmavý motiv na základě hexadecimální hodnoty barvy značky. Světlý motiv vytváří dvě tmavě modré barvy textu a velmi světlou bílou barvu povrchu pozadí. Uživatelským vlastnostem @media (prefers-color-scheme: dark) jsou poté přiřazeny nové barvy, takže pozadí ztmavne a barva textu bude světlá.

:root 
/* базовый цвет brand */
--brand: #0af;

/* очень тёмный brand синий */
--text1: color-mix(in oklab, var(--brand) 25%, black);
--text2: color-mix(in oklab, var(--brand) 40%, black);

/* очень светлый brand белый */
--surface1: color-mix(in oklab, var(--brand) 5%, white);
>

@media (prefers-color-scheme: dark)
:root
--text1: color-mix(in oklab, var(--brand) 15%, white);
--text2: color-mix(in oklab, var(--brand) 40%, white);
--surface1: color-mix(in oklab, var(--brand) 5%, black);
>
>

Toho všeho je dosaženo smícháním bílé nebo černé s hodnotou barvy značky.

Střední barevné schéma s color-mix()

Můžete jít ještě dále přidáním více světlých a tmavých motivů. V následující ukázce změny ve skupině přepínačů aktualizují atribut tagu HTML [color-scheme=”auto”], který umožňuje selektorům podmíněně měnit barevné téma.

Tato ukázka přechodného barevného schématu také demonstruje techniku ​​barevného motivu, ve které jsou všechny barvy motivu uvedeny v :root . Díky tomu je lze snadno vidět všechny pohromadě a v případě potřeby je upravit. Později v šabloně stylů můžete použít proměnné při jejich definování. To eliminuje potřebu hledat v šabloně stylů chroma klíče, protože jsou všechny obsaženy v počátečním :root bloku.

Zajímavější příklady použití color-mix()

Ana Tudor má skvělé demo s několika způsoby použití color-mix() k prozkoumání:

Ladění color-mix() pomocí DevTools

Chrome DevTools má vynikající podporu pro funkci color-mix(). Rozpoznává a zvýrazňuje syntaxi, vytváří náhled prolnutí barev přímo vedle stylu na panelu Styly a umožňuje vybrat alternativní barvy.

ČTĚTE VÍCE
Co léčí divizna bylina?

V DevTools to vypadá takto:

Šťastné míchání/míchání všem!

Mixy jsou kytice, které kombinují několik druhů květin. Kombinace různých květin v jedné kompozici tak, aby vypadaly harmonicky a „chutně“, je komplexní umění, které se učí roky. Květinářství je tak prostorná disciplína, že v ní lidé uvíznou na celý život a neustále se zdokonalují. V tomto článku budeme hovořit o tom, co potřebujete vědět, abyste květiny krásně kombinovali. A navrhneme několik hotových receptů na úspěšné kytice.

Základy kolorismu

Rozhodující je výběr barev pro kytici. Barevné schéma dodává kompozici náladu. Může být menší nebo větší, kytice může působit povzbudivě nebo uklidňujícím dojmem, vášnivě a něžně. Všechny tyto efekty lze vytvořit použitím správné barvy. Chcete-li správně kombinovat barvy, měli byste se seznámit s barevným kolem.

Pět nejoblíbenějších schémat výběru barev na barevném kole

  1. Vybíráme poupata ze tří květin umístěných v kruhu poblíž. Tento obvod se nazývá analogový. Například žlutá, citronová a pomerančová.
  2. Vybíráme 2 různé barvy, ale ne kontrastní barvy, neměly by sousedit v kruhu. Takové barvy se nazývají doplňkové. Například zelená a modrá.
  3. Kyticí mix může být složen z několika odstínů stejné barvy. Například sníh, mléko, papír – to jsou různé odstíny bílé. Takové kompozice se nazývají monochromatické.
  4. Pokud do kytice nasbíráte poupata tří květin, které jsou na barevném kole od sebe stejně vzdálené, získáte klasickou trojici.
  5. A je tu také tetráda – to je, když kytice obsahuje poupata dvou základních barev a dvou analogových – modré a žluté, tyrkysové a citronové.

Soutěžící květiny

Ne všechny květiny se k sobě hodí. Pokud stonek rostliny pustí do vody šťávu nebo mléko, téměř vždy to sousedům v kytici škodí. Například slizká míza narcisů ucpává stonky jiných rostlin a ty nedostávají výživu. Narcis by se proto neměl v kytici kombinovat s jinými květinami. Nebo můžete počkat alespoň den – do této doby většina šťávy vyteče. Ze stejného důvodu jsou agresivní tulipány, lilie, konvalinky, máky a karafiáty.

A teď k věci.

Nejoblíbenějšími květinami pro výrobu kytic, které lze individuálně objednat pro kreativní experimenty, jsou růže, chryzantémy, pivoňky, kosatce, tulipány, narcisy, eustomy, alstroemérie, pryskyřník, hortenzie, karafiáty, sedmikrásky, gerbery, kaly, orchideje, lilie slunečnice, delphinium .

ČTĚTE VÍCE
Jaké fialky můžete jíst?

Jak jste pochopili, existuje spousta možností pro vytváření kompozic, ale nejvíce společenské květiny jsou růže, chryzantémy a pivoňky. Nejčastěji se kombinují s ostatními. Existují samozřejmě šablony, které můžete použít k vytvoření kytice. Ale stojí za zmínku, že navzdory dostupnosti receptů je každá kytice vždy jedinečná.

Základní pravidla pro tvorbu kytice:

  • Chcete-li vytvořit kompetentní trs, nevybírejte více než 3 odrůdy květin a vždy nějakou zeleň.
  • Nejvíce vítěznou barevnou kombinací jsou tři hlavní odstíny v poměru přibližně 3:5:7.

Kytice s růžemi

Růže vypadají skvěle s liliemi, hortenziemi, kallasy, gypsophila, alstroemériemi a pivoňkami. Trendy jsou neobvyklé barevné kombinace, jako je růže, levandule a bavlna. Na takovou kytici se doporučuje použít obal, který je nenáročný, jednoduchý a vyrobený z přírodních materiálů. Zvýrazňuje krásu divoké přírody provincie a také přirozené kouzlo růží.

Kytice s chryzantémami

Tuto podzimní květinu najdete v kombinaci s gerberami, růžemi, alstromeriemi a pivoňkami. Nejoblíbenějším využitím chryzantém je ale vytváření sezónních podzimních aranžmá. K tomu se používají pupeny vínových, žlutých a oranžových odstínů, stejně jako další materiály, jako je ovoce, podzimní bobule a dokonce i sušené květiny.

Kytice s pivoňkami

Pivoňka je soběstačná a sama o sobě neuvěřitelně krásná. Ale přesto je častým účastníkem smíšených kytic. Pivoňky se používají k vytváření letních kompozic. V poslední době je lze kombinovat s květinami, jejichž doba květu se shoduje s dobou květu pivoněk na zahradě. Pro moderní sofistikovanou kompozici s pivoňkami můžete použít sedmikrásky, pomněnky a hortenzie.

Smíšené kytice lze rozdělit na tradiční a netradiční, jako samostatná kategorie jsou zařazeny i směsi exotické. Tradiční kytice jsou nejčastější klasické barevné kombinace, tedy takové, na které jsme zvyklí. Nejvýraznějším příkladem jsou růže a chryzantémy. K netradičním kombinacím patří například kombinace divokých a zahradních květin, kdy se stejné růže a pivoňky spojí do jedné kompozice s kopretinami. Pokud kytice obsahuje vzácné exotické rostliny, pak je takový mix považován nejen za nekonvenční, ale také za exotický. Exotika – tak květináři nazývají vzácné květiny z tropických šířek, vypadají neobvykle. Obvykle jsou okamžitě viditelné, jako například Strelitzia.

Tvorbu takto složitých kompozic co do formy a obsahu obvykle provádějí pouze profesionálové. Květinářství je však pro začátečníky tak atraktivní, že mají také šanci vytvořit mistrovské dílo bez zvláštních znalostí, ale řídí se pouze intuicí. Jít na to!

Doručení zdarma v rámci Moskvy do 2 hodin