po

[ASAP] Discovery of BMS-986251: A Clinically Viable, Potent, and Selective ROR?t Inverse Agonist

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00063




po

[ASAP] Novel Dithiolane-Based Ligands Combining Sigma and NMDA Receptor Interactions as Potential Neuroprotective Agents

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00129




po

[ASAP] Design and Synthesis of Tetrazole- and Pyridine-Containing Itraconazole Analogs as Potent Angiogenesis Inhibitors

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.9b00438




po

[ASAP] Potential Cancer Treatment by Agonists of the Stimulator of Interferon Genes

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00117




po

[ASAP] Artemisinin Derivatives with Antimelanoma Activity Show Inhibitory Effect against Human DNA Topoisomerase 1

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00131




po

[ASAP] Discovery of a Potent Dual Inhibitor of Wild-Type and Mutant Respiratory Syncytial Virus Fusion Proteins

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00008




po

[ASAP] Can Drug Repositioning Work as a Systematical Business Model?

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00122




po

[ASAP] Discovery of CPI-1612: A Potent, Selective, and Orally Bioavailable EP300/CBP Histone Acetyltransferase Inhibitor

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00155




po

[ASAP] PROTAC Compounds Targeting a-Synuclein Protein for Treating Neurogenerative Disorders: Alzheimer’s and Parkinson’s Diseases

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00192




po

[ASAP] Discovery of RO7185876, a Highly Potent ?-Secretase Modulator (GSM) as a Potential Treatment for Alzheimer’s Disease

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00109




po

[ASAP] Ultra-High-Throughput Acoustic Droplet Ejection-Open Port Interface-Mass Spectrometry for Parallel Medicinal Chemistry

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00066




po

[ASAP] Scaffold Repurposing of in-House Chemical Library toward the Identification of New Casein Kinase 1 d Inhibitors

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00028




po

[ASAP] De-risking Drug Discovery of Intracellular Targeting Peptides: Screening Strategies to Eliminate False-Positive Hits

ACS Medicinal Chemistry Letters
DOI: 10.1021/acsmedchemlett.0c00022




po

Tanzania turns to solar power to increase electricity connectivity

As many as 60 percent of the Kenyan population now has access to electricity according to official data. But in neighbouring Tanzania, the penetration rate is less than half of that and sparsely populated rural communities are especially neglected.  

The post Tanzania turns to solar power to increase electricity connectivity appeared first on LatestSolarNews.




po

China’s New Large Solar-Powered Drone Reaches 20,000 Meters in Altitude

China’s first domestically designed large solar-powered unmanned plane reached above 20,000 meters in altitude on its test flight in the country’s northwest regions recently. The drone was developed by the China Academy of Aerospace Aerodynamics (CAAA), it’s developers kept the exact size of the drone as a secret, but it is believed to be about 14 …

The post China’s New Large Solar-Powered Drone Reaches 20,000 Meters in Altitude appeared first on LatestSolarNews.




po

Solar Trees Powering The Park Of South Florida

Joining South Florida’s lush, green canopy of real trees are a new crop of solar trees. These “trees” have blue trunks and bear no fruit, but supply clean energy to whoever needs it. If you’re at the beach and your phone starts to die, you can charge it right here using Solar Power. Here’s how …

The post Solar Trees Powering The Park Of South Florida appeared first on LatestSolarNews.




po

Solar Powered Lights For The Yard

Reading about the various sofas reviews here and choosing amongst them to match your patio is not that difficult when compared to doing the entire electrical work of the patio. When you are lighting your patio the exact opposite thing you need to do is to be stumbling over electrical lines and attempting to put …

The post Solar Powered Lights For The Yard appeared first on LatestSolarNews.




po

Sono Motors Introduces The SION Solar Powered Car

The fantasy of having the capacity to drive to work in a solar-powered car is at last turning into a reality. Sono Motors simply uncovered the SION solar-powered electric car gives you the ability to travel up to 18 miles utilizing only energy from the sun. Best of all, the SION isn’t only for the …

The post Sono Motors Introduces The SION Solar Powered Car appeared first on LatestSolarNews.




po

New Solar Plant In Chile To Power 13,000 Homes Per Year

Chile is building a brand new solar power plant that has some exciting outcome on the future. The plant is expected to provide energy on day and night as well as throughout inclement weather, to power up to 13,000 homes annually. This project will make Chile one of the top solar energy spots in the …

The post New Solar Plant In Chile To Power 13,000 Homes Per Year appeared first on LatestSolarNews.




po

Nesting Components

Using CSS components is somewhat straightforward. We add the markup and give it the component’s class name and all is good. Where it gets trickier is when we try to nest components. And when they need to be tweaked based on the context. Where should the styles be defined? It’s a question I’ve been asking myself a few times and what this article is trying to explore.

Just to clarify before we start, with “CSS components”, I mean the small building blocks that get used to assemble a website or app. Like buttons, inputs, navs, headers etc. Some also call them modules or patterns. Also I’m using the SUIT naming convention in the examples below, but any other convention would be fine as well. And just a heads, there isn’t some awesome solution at the end that solves all the problems. It’s just me whining most of the time.

Ok, best is to go straight into it and look at an example. Let’s say we have a Header component where we would like to add a Button component inside.

<header class=“Header”>
  <button class=“Button”>Button</button>
</header>

Now because the Button is inside the Header, we want to make the Button a bit smaller than it would be on its own.

Here a few approaches how to do that:

Option 1 - Descendant selector

Maybe the most common way is to use a descendant selector to change the font-size whenever a Button is inside a Header.

.Header .Button {
  font-size: .75em;
}

This works great but the question is, where should this rule be added? We probably split our components into separate files, so is it in header.scss or in button.scss? In other words, should the Header know about what other components might get nested or should the Button know in what environment it will get placed?

But wait, the point of creating components is to separate them, make them modular. Each component should be kept isolated and shouldn’t know about other components. So we can make changes, rename or remove them without having to check if they might get used somewhere else.

Option 2 - Variations

Another way is to create variations. We add a .Button--small class that we can use whenever we would like the button to be smaller without having to worry about ancestors.

.Button--small {
  font-size: .75em;
}
<header class=“Header”>
  <button class=“Button Button--small>Button</button>
</header>

This works great too, but could get out of hand quickly. What do you do if at some point you want the font-size to be .9em? Create yet another variation? Button--justALittleSmaller. As the project keeps growing, the number of variations will too. We will start to loose sight where they actually get used and we’re not sure anymore if we can change a variation or if it will have side effects in some other place. We could create “contextual” variations like Button--header or Button--footer, but then we’re back at the beginning and could just as well use “descendant selectors”.

Same goes for using states. .Button.is-small should only be used if there is a change in state and not to fit a certain context.

Option 3 - Adopted Child

I can’t remember where I read about this approach but somehow it stuck with me. I also forgot how it was called. So for now I’ll just call it “Adopted Child”.

Let’s switch it around and look at it from the Header’s perspective. What would we do if we wouldn’t know what the components are called that might get nested? But we know that we want to make them a bit smaller. Well, we probably would create a generic .Header-item class and use it like this:

.Header-item {
  font-size: .75em;
}
<header class=“Header”>
  <div class=“Header-item”></div>
</header>

Ok, that gets us a bit closer. Now, it’s probably strange saying it like that when talking about CSS, but what would we do if we don’t want to create an own child, but still have one. Right, we could adopt one. In our example we adopt a Button component as our own child. We didn’t create it, but now we can tweak.. erm.. I mean “raise” it like it’s our own:

// born in button.scss
.Button {
  font-size: 1em;
}

// raised in header.css
.Header .Header-item {
  font-size: .75em;
}
<header class=“Header”>
  <button class=“Header-item Button>Button</button>
</header>

It is a bit uncommon that the same HTML element shares classes from two different components. And it’s not without any risks. More about them later. But I really like this approach because it keeps the components independent without having to know about each other.

Another nice thing is that if we want to add other components to the Header that also need the same adjustments, we can reuse the same Header-item class, like for example on a text Input.

<header class=“Header”>
	<input class=“Header-item Input>
  <button class=“Header-item Button>Button</button>
</header>

Ok, about those risks. Well, depending on what properties we wanna change, it might not always be ideal. For example, because the Button already had font-size defined, we had to increase specificity by using .Header .Header-item. But that would also override variations like .Button--small. That might be how we want it, but there are also situations where we’d like the variation to always be “stronger”. An example would be when changing colors. When the color of Buttons should be different inside a Header, but not when its a variation, like .Button—primary. Yeah, we could take a look inside button.scss or our style-guide, but remember our goal.. we actually don’t want to make decisions by looking how other components are made.

So, as a general rule, don’t use “adopted children” for any properties that are theme related and only where you can be sure that you want to override them all the time. Like for layout/size related properties or adjusting the position.

More options?

There are some more ways to do contextual styling that came to mind. I’ll just mention them briefly for completeness, but think the 3 above are better suited.

Option 4 - We could use a preprocessor to extend an existing component. In our example it would be a clone of the Button with some tweaks added and used as a new child component .Header-button. Now we only rely that the Button exists in the source, but don’t have to worry about other contexts. Downside is inflating our CSS output. As well as having to remember lots of new child component classes.

Option 5 - We could create a utility class like .u-small. It’s similar to variations, but not scoped to a single component and could be used for other components as well. And for that reason it becomes very risky to ever change later.

Option 6 - And of course, we could use inline styles. But I would leave that to JavaScript only.


So after all that, which is best? I’m afraid there isn’t a clear winner. It would be nice to keep it consistent with a single approach throughout the entire project, but I guess we just have to decide on a per case basis:

  1. Descendant selectors if we can expect that components don’t change much. Like when using a UI Kit or library.
  2. Variations if it makes sense that a component has different versions that get reused anyways, and not just for a specific context.
  3. Adopted Child for layout, sizing, positioning or where we are sure to always want to override a property. Also for changing multiple child components at once.
  4. Extending when we truly want the components to be separated and don’t mind inflating the CSS output.
  5. Utilities for very specific things, that once the class is defined, it will never change, like clearing floats.
  6. Inline styles if it needs to be dynamically added with JavaScript.

As said at the beginning, I haven’t found a “fits all” solution and maybe the conclusion is: Try to keep contextual styling to a minimum.

Updates

The “Adopted Child” approach is called “Mixes” in BEM. Here some more infos.


SUIT also recommends using “Adopted Child/Mixes”. But also another option:

Option 7 - Adding a wrapper element. It’s the <div class="Excerpt-wrapButton"> in that example. I think it works great in most cases. But for example when using Flexbox, because it has this parent/child relationship, adding an extra wrapper in between would break it. And then you might still need to set the width of the wrapped component to 100% or so. Anyways, this is a great addition. Thanks Pablo in the comments.


Option 8 - Single Purpose Classes. It’s where every class has only a single property. It’s somewhere between utilities (Option 5) and inline styles (Option 6). Atomic CSS and Tachyons use this approach. I haven’t used them on a real project, but just from looking at it, the concerns are similar to the ones from utilities. If you want to change the value in a SP class, it seems unpredictable. Because in another place (where that same class is used), you might want to keep the current value. So you would have to first check if the change has any unwanted effects somewhere else.




po

Unlock Your Team’s Potential With Teamstack

Teamstack is a password manager for your whole team. Running in the cloud it allows you to manage your tools and resources, and seamlessly scale your teams’ access, from a single, easy-to-use control panel. Teamstack is powerful, and secure with multi-factor authentication, single sign-in, SAML and form-based authentication. It works with desktop and mobile apps, […]




po

Popular Design News of the Week: April 20, 2020 – April 26, 2020

Every week users submit a lot of interesting stuff on our sister site Webdesigner News, highlighting great content from around the web that can be of interest to web designers.  The best way to keep track of all the great stories and news being posted is simply to check out the Webdesigner News site, however, […]




po

Popular Design News of the Week: April 27, 2020 – May 3, 2020

Every week users submit a lot of interesting stuff on our sister site Webdesigner News, highlighting great content from around the web that can be of interest to web designers.  The best way to keep track of all the great stories and news being posted is simply to check out the Webdesigner News site, however, […]




po

8 of the Top WP Multipurpose Themes That You Can Use

More than a few multipurpose WordPress themes have become big sellers in recent years, and for a reason. Actually, for several reasons. One reason is they serve as excellent toolkits for web designers who have large and varied clienteles. The best multipurpose themes, like those presented here, are popular for other reasons as well. They […]




po

Thanks to Covid-19, Website Accessibility Has Never Been More Important

The first global pandemic of the digital era is upon us. We’re living in unprecedented and uncomfortable times. For our senior citizens, these past several weeks have been particularly discomforting. According to the CDC, men and women over the age of 65 are significantly more likely to develop complications from COVID-19. As we seek to […]




po

ગુગલ, માઈક્રોસોફ્ટે પોતાની પાઈરસી પોલિસીને કાબુ માં રાખવી પડશે, બ્રિટન IPO દ્વારા કોડ બ્રોક કરવામ

થોડા સમય બાદ, જે વેબસાઇટ્સ પર પ્રિન્ટેડ મટીરીઅલ રાખવા માં આવતા હશે તેને આગેવાન સર્ચ એન્જીન જેમ કે ગુગલ અને માઈક્રોસોફ્ટ ના ફ્રન્ટ પેજ પર નહિ બતાવવા માં આવે. આ સમાચાર આવ્યા છે એક ડીલ પર થી કે જે સર્ચ એંજીન્સ




po

Gordon Parks: the new tide, early work, 1940-1950 / Philip Brookman ; with essays by Maurice Berger, Sarah Lewis, Richard J. Powell, Deborah Willis ; series editor, Peter W. Kunhardt, Jr

Rotch Library - TR647.P37 2018




po

Altered states: Substanzen in der zeitgenössischen Kunst = substances in contemporary art / herausgegeben von = edited by Milena Mercer ; Texte = texts, Max Daly ... [and thirteen others]

Rotch Library - N8251.S555 A48 2018




po

The shadow of dream cast upon Giardini della Biennale

Rotch Library - N6488.I8 V433 2019 U38




po

Le modèle noir: de Géricault à Matisse: Musée d'Orsay / [éditeur, Claude Pommereau]

Rotch Library - N8232.M6325 2019




po

April in Paris: theatricality, modernism, and politics at the 1925 Art Deco Expo / Irena R. Makaryk

Hayden Library - N6493 1925.M35 2018




po

Exercises in freedom: polnische Konzeptkunst, 1968-1981 = Polish conceptualism, 1968-1981 / Herausgeber = editor, Staatliche Kunstsammlungen Dresden, Kupferstich-Kabinett, Björn Egging

Rotch Library - N7255.P6 E88 2018




po

Gordon Matta-Clark: physical poetics / Frances Richard

Rotch Library - N6537.M3947 R53 2019




po

Photography reframed: new visions in contemporary photographic culture / edited by Ben Burbridge and Annebella Pollen

Rotch Library - TR185.P52 2018




po

Situating global art: topologies, temporalities, trajectories / Sarah Dornhof, Nanne Buurman, Birgit Hopfener, Barbara Lutz (eds.)

Rotch Library - N72.G55 S58 2018




po

Illuminated Paris: essays on art and lighting in the belle époque / Hollis Clayson

Rotch Library - N8214.5.F8 C539 2019




po

Bauhaus goes west: modern art and design in Britain and America / Alan Powers

Rotch Library - N332.G33 B4575 2019




po

The art of return: the sixties & contemporary culture / James Meyer

Rotch Library - N6512.M479 2019




po

Poetry of the revolution: Marx, manifestos, and the avant-gardes / Martin Puchner

Online Resource




po

Comradely objects: design and material culture in Soviet Russia, 1960s-1980s / Yulia Karpova

Rotch Library - N6988.K37 2020




po

Arabicity: contemporary Arab art / edited by Rose Issa and Juliet Cestar ; contributions by Rose Issa, Georges Corm, Michket Krifa, Etel Adnan

Rotch Library - N7265.3.A733 2019




po

Painting with fire: Sir Joshua Reynolds, photography, and the temporally evolving chemical object / Matthew C. Hunter

Online Resource




po

Folk masters: a portrait of America / photographs by Tom Pich ; text by Barry Bergey

Rotch Library - TR681.A7 P53 2018




po

Gauguin: portraits / edited by Cornelia Homburg, Christopher Riopelle ; with contributions by Elizabeth C. Childs [and five others]

Rotch Library - ND553.G27 A4 2019




po

Beyond the pink tide: art and political undercurrents in the Americas / Macarena Gómez-Barris

Barker Library - NX650.P6 G66 2018




po

Constructing imperial Berlin: photography and the metropolis / Miriam Paeslack

Rotch Library - TR74.B47 P34 2019




po

Experimental Beijing: gender and globalization in Chinese contemporary art / Sasha Su-Ling Welland

Rotch Library - N7345.6.W46 2018




po

Shifting grounds: landscape in contemporary Native American art / Kate Morris

Rotch Library - N8213.M696 2019




po

Introducing science through images: cases of visual popularization / Maria E. Gigante

Rotch Library - N72.S3 G54 2018




po

Cartoon vision: UPA animation and postwar aesthetics / Daniel Bashara

Rotch Library - NC1766.U5 B38 2019