Рубрики

colors

What colors can you merge to make black?

Krita supports non-destructive editing of the content of the layer. Non-destructive editing means editing or changing a layer or image without actually changing the original source image permanently, the changes are just added as filters or masks over the original image while keeping it intact, this helps a lot when your workflow requires constant back and forth. You can go back to original image with a click of a button. Just hide the filter or mask you have your initial image.


Introduction to Layers and Masks¶

Krita supports layers which help to better control parts and elements of your painting.

Think of an artwork or collage made with various stacks of papers with some papers cut such that they show the paper beneath them while some hide what’s beneath them. If you want to replace an element in the artwork, you replace that piece of paper instead of drawing the entire thing. In Krita instead of papers we use Layers. Layers are part of the document which may or may not be transparent, they may be smaller or bigger than the document itself, they can arrange one above other, named and grouped.

Layers can give better control over your artwork for example you can re-color an entire artwork just by working on the separate color layer and thereby not destroying the line art which will reside above this color layer.

You can edit individual layers, you can even add special effects to them, like Layer styles, blending modes, transparency, filters and transforms. Krita takes all these layers in its layer stack, including the special effects and combines or composites together a final image. This is just one of the many digital image manipulation tricks that Krita has up its sleeve!

Usually, when you put one paint layer on top of another, the upper paint layer will be fully visible, while the layer behind it will either be obscured, occluded or only partially visible.

Managing layers¶

Some artists draw with limited number of layers, but some prefer to have different elements of the artwork on separate layer. Krita has some good layer management features which make the layer management task easy.

You can group layers and organize the elements of your artwork.

The layer order can be changed or layers can be moved in and out of a group in the layer stack by simply holding them and dragging and dropping. Layers can also be copied across documents while in the subwindow mode , by dragging and dropping from one document to another.

These features save time and also help artists in maintaining the file with a layer stack which will be easy to understand for others who work on the same file. In addition to these layers and groups can both be labeled and filtered by colors, thus helping the artists to visually differentiate them.

mouseright

To assign a color label to your layer or layer group you have to on the layer and choose one of the given colors from the context menu. To remove an already existing color label you can click on the ‘x’ marked box in the context menu.

Once you assign color labels to your layers, you can then filter layers having similar color label by clicking on one or more colors in the list from the drop-down situated in the top-right corner of the layer docker.

New in version 5.0: You can also use this dropdown to filter the layers by layer name.

Types of Layers¶

The image above shows the various types of layers in Layers . Each layer type has a different purpose for example all the vector elements can be only placed on a vector layer and similarly normal raster elements are mostly on the paint layer, Layers and Masks page contains more information about these types layers.

Now Let us see how these layers are composited in Krita.

Maps

Maps in Sass hold pairs of keys and values, and make it easy to look up a value by its corresponding key. They’re written (: , : ) . The expression before the : is the key, and the expression after is the value associated with that key. The keys must be unique, but the values may be duplicated. Unlike lists, maps must be written with parentheses around them. A map with no pairs is written () .

Fun fact:

Astute readers may note that an empty map, () , is written the same as an empty list. That’s because it counts as both a map and a list. In fact, all maps count as lists! Every map counts as a list that contains a two-element list for each key/value pair. For example, (1: 2, 3: 4) counts as (1 2, 3 4) .

Maps allow any Sass values to be used as their keys. The == operator is used to determine whether two keys are the same.

⚠️ Heads up!

Most of the time, it’s a good idea to use quoted strings rather than unquoted strings for map keys. This is because some values, such as color names, may look like unquoted strings but actually be other types. To avoid confusing problems down the line, just use quotes!

Since maps aren’t valid CSS values, they don’t do much of anything on their own. That’s why Sass provides a bunch of functions to create maps and access the values they contain.

Maps are all about associating keys and values, so naturally there’s a way to get the value associated with a key: the map.get($map, $key) function! This function returns the value in the map associated with the given key. It returns null if the map doesn’t contain the key.

SCSS Syntax

@use "sass:map"; $font-weights: ("regular": 400, "medium": 500, "bold": 700); @debug map.get($font-weights, "medium"); // 500 @debug map.get($font-weights, "extra-bold"); // null 

Sass Syntax

@use "sass:map" $font-weights: ("regular": 400, "medium": 500, "bold": 700) @debug map.get($font-weights, "medium") // 500 @debug map.get($font-weights, "extra-bold") // null 

This doesn’t actually use a function, but it’s still one of the most common ways to use maps. The @each rule evaluates a block of styles for each key/value pair in a map. The key and the value are assigned to variables so they can easily be accessed in the block.

SCSS Syntax

$icons: ("eye": "f112", "start": "f12e", "stop": "f12f"); @each $name, $glyph in $icons  .icon-# :before  display: inline-block; font-family: "Icon Font"; content: $glyph; > > 

Sass Syntax

$icons: ("eye": "f112", "start": "f12e", "stop": "f12f") @each $name, $glyph in $icons .icon-# :before display: inline-block font-family: "Icon Font" content: $glyph 

CSS Output

.icon-eye:before  display: inline-block; font-family: "Icon Font"; content: "f112"; > .icon-start:before  display: inline-block; font-family: "Icon Font"; content: "f12e"; > .icon-stop:before  display: inline-block; font-family: "Icon Font"; content: "f12f"; > 

It’s also useful to add new pairs to a map, or to replace the value for an existing key. The map.set($map, $key, $value) function does this: it returns a copy of $map with the value at $key set to $value .

SCSS Syntax

@use "sass:map"; $font-weights: ("regular": 400, "medium": 500, "bold": 700); @debug map.set($font-weights, "extra-bold", 900); // ("regular": 400, "medium": 500, "bold": 700, "extra-bold": 900) @debug map.set($font-weights, "bold", 900); // ("regular": 400, "medium": 500, "bold": 900) 

Sass Syntax

@use "sass:map" $font-weights: ("regular": 400, "medium": 500, "bold": 700) @debug map.set($font-weights, "extra-bold": 900) // ("regular": 400, "medium": 500, "bold": 700, "extra-bold": 900) @debug map.set($font-weights, "bold", 900) // ("regular": 400, "medium": 500, "bold": 900) 

Instead of setting values one-by-one, you can also merge two existing maps using map.merge($map1, $map2) .

SCSS Syntax

@use "sass:map"; $light-weights: ("lightest": 100, "light": 300); $heavy-weights: ("medium": 500, "bold": 700); @debug map.merge($light-weights, $heavy-weights); // ("lightest": 100, "light": 300, "medium": 500, "bold": 700) 

Sass Syntax

@use "sass:map" $light-weights: ("lightest": 100, "light": 300) $heavy-weights: ("medium": 500, "bold": 700) @debug map.merge($light-weights, $heavy-weights) // ("lightest": 100, "light": 300, "medium": 500, "bold": 700) 

If both maps have the same keys, the second map’s values are used in the map that gets returned.

SCSS Syntax

@use "sass:map"; $weights: ("light": 300, "medium": 500); @debug map.merge($weights, ("medium": 700)); // ("light": 300, "medium": 700) 

Sass Syntax

@use "sass:map"; $weights: ("light": 300, "medium": 500) @debug map.merge($weights, ("medium": 700)) // ("light": 300, "medium": 700) 

Note that because Sass maps are immutable, map.set() and map.merge() do not modify the original list.


Maps in Sass are immutable, which means that the contents of a map value never changes. Sass’s map functions all return new maps rather than modifying the originals. Immutability helps avoid lots of sneaky bugs that can creep in when the same map is shared across different parts of the stylesheet.

You can still update your state over time by assigning new maps to the same variable, though. This is often used in functions and mixins to track configuration in a map.

SCSS Syntax

@use "sass:map"; $prefixes-by-browser: ("firefox": moz, "safari": webkit, "ie": ms); @mixin add-browser-prefix($browser, $prefix)  $prefixes-by-browser: map.merge($prefixes-by-browser, ($browser: $prefix)) !global; > @include add-browser-prefix("opera", o); @debug $prefixes-by-browser; // ("firefox": moz, "safari": webkit, "ie": ms, "opera": o) 

Sass Syntax

@use "sass:map" $prefixes-by-browser: ("firefox": moz, "safari": webkit, "ie": ms) @mixin add-browser-prefix($browser, $prefix) $prefixes-by-browser: map.merge($prefixes-by-browser, ($browser: $prefix)) !global @include add-browser-prefix("opera", o) @debug $prefixes-by-browser // ("firefox": moz, "safari": webkit, "ie": ms, "opera": o) 

‘Bigger than before’: New Hampshire Black Lives Matter chapters merge

Black Lives Matter NH

The state’s three Black Lives Matter chapters are merging to form a single statewide nonprofit: Black Lives Matter New Hampshire.

The consolidation, leaders say, will allow the organization to build its collective power, as well as boost organizing and outreach efforts throughout New Hampshire. The chapters in Manchester, Nashua, and the Seacoast region have already been frequent collaborators and share much of the same mission, though there are nuances in their different communities.

“The message is that we’re still here and we’re now bigger than before,” said Tanisha Johnson, of Exeter, co-founder and board chair of Black Lives Matter Seacoast. “We’re still working on causes in a greater demand and the initiatives are not just when something happens and we’re being reactive about it. We are taking a proactive approach, and now we’re doing that statewide.”

Ronelle Tshiela

Ronelle Tshiela, who co-founded Black Lives Matter Manchester and served on the state’s Commission on Law Enforcement Accountability, Community, and Transparency, said the chapters’ work has shifted since 2020, when organizers across the country took to the streets in protest after the murder of George Floyd in Minneapolis.

Black Lives Matter was front and center in political conversations then. In June 2020, Black Lives Matter Manchester, Nashua, and Seacoast put out seven demands for gubernatorial candidates in response to the killing of Floyd. Those included requiring implicit bias training for all state and government employees, creating a new racial equity task force, and prohibiting the use of rubber bullets and tear gas by police.

In 2021, the chapters were also active in advocating against the “divisive concepts” bill that is now state law, as well as legislation they deemed “anti-bail reform” that could disproportionately impact people of color.

More recently, Tshiela said, the chapters are shifting their focus to real-time community needs, rather than testifying at the State House, for example, which used to be at the forefront of their mission.

Those more immediate needs include youth education and scholarships, Black maternal health, diversity and inclusion training, and mutual aid support for people of color.

They’re also celebrating Black joy and success, too, and creating gathering spaces for communities. The Seacoast chapter holds an annual Black Excellence Gala and a Black Excellence Weekend at the University of New Hampshire, where they honor award winners in business, art, community impact, and academics.

Black Lives Matter NH

“I think people still want that energy from 2020 to continue, and they still want these Black organizations to thrive and for Black people to have these spaces where they feel valued,” said Clifton West. Jr., of Barrington, executive director and co-founder of Black Lives Matter Seacoast. “We definitely still get that feeling. It’s still needed.”

‘Now is the perfect time’

Discussions about merging the chapters began last winter. Logistically, Black Lives Matter Seacoast, a standalone registered nonprofit that formed in the summer of 2020, is changing its name to Black Lives Matter New Hampshire. Their work is funded entirely by grants and donations.

“Talking to the other leaders, it was just like, now is the perfect time,” said West Jr.

The chapter leaders said while there are certainly differences among their communities – from demographics to geographic location to socioeconomic status – they were doing much of the same work with aligning missions.

Tshiela sees the merger as cementing the longevity of a movement she helped launch in New Hampshire back in 2016, as a teenager in the state’s largest city.

“It also means this is an opportunity to make it even more sustainable and make sure it lasts beyond our involvement in the organization,” she said.

Johnson is most excited about expanding the organization’s board, seeing it double in size to include members “from across the state with new perspectives and thoughts.”

Mutual aid, youth, and Black maternal health

Mutual aid has become a staple of the Black Lives Matter movement in New Hampshire, and the demand for assistance is expected to grow as the new statewide organization expands its reach. Mutual aid, Johnson described, is funding given to those in need “without any question, without any barriers or restrictions.”

Both the Seacoast and Manchester chapters have robust mutual aid programs. Last year, the Seacoast chapter doled out more than $60,000 to help neighbors with everyday needs across Strafford and Rockingham counties in New Hampshire, York County in Maine, and Essex County in Massachusetts.

Manchester’s mutual aid relief fund primarily helps Black households in the city who need help paying utility or wifi bills, rent, or car payments.

To meet the expected increase in mutual aid fund requests, West Jr. said the new organization will launch with a monthly donor drive – if they gain 50 new monthly donors, the Resource Organizing Project will provide a $5,000 match.

Black Lives Matter NH

Black Lives Matter New Hampshire anticipates expanding its youth division, which connects biweekly to discuss current events, personal lives, and create safe spaces for youth. Participants have, for example, addressed a lack of inclusion and equity within libraries for youth, held supply drives and created fun social spaces, and served as a resource for students looking to have their voices heard by administrators and teachers.

Initiatives around Black maternal health are also expected to be a major focus. The U.S. maternal mortality rate has gotten worse in recent years, and according to a study published in the Journal of the American Medical Association, maternal death rates remain the highest among Black women.

Last April, Black Lives Matter Seacoast, Reproductive Freedom Fund of New Hampshire, and Lovering Health Center held an event at UNH titled, “Beyond Roe: Black Abortion and Maternal Health Experiences.”

Tshiela was a panelist and Johnson moderated the event, which featured a keynote speech from ​Dr. Ndidiamaka Amutah-Onukagha, the Julia A. Okoro Professor of Black Maternal Health in the Department of Public Health and Community Medicine at Tufts University School of Medicine and founder of the Center for Black Maternal Health and Reproductive Justice.

“One of the new ventures we are really working towards is programming in regards to Black maternal health and resources,” Johnson said.

Colin Wynn
the authorColin Wynn

Leave a Reply