x

[ASAP] Correction to Toggling Preassembly with Single-Site Mutation Switches the Cytotoxic Mechanism of Cationic Amphipathic Peptides

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00608




x

[ASAP] Discovery of (2<italic toggle="yes">R</italic>)-<italic toggle="yes">N</italic>-[3-[2-[(3-Methoxy-1-methyl-pyrazol-4-yl)amino]pyrimidin-4-yl]-1<italic toggle="yes">H</italic>-indol-7

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.9b01392




x

[ASAP] Correction to Photoactivatable Prolyl Hydroxylase 2 Inhibitors for Stabilizing the Hypoxia-Inducible Factor with Light

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00599




x

[ASAP] Structure-Based Design of Highly Potent HIV-1 Protease Inhibitors Containing New Tricyclic Ring P2-Ligands: Design, Synthesis, Biological, and X-ray Structural Studies

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00202




x

[ASAP] Degradation versus Inhibition: Development of Proteolysis-Targeting Chimeras for Overcoming Statin-Induced Compensatory Upregulation of 3-Hydroxy-3-methylglutaryl Coenzyme A Reductase

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00339




x

[ASAP] p62/SQSTM1, a Central but Unexploited Target: Advances in Its Physiological/Pathogenic Functions and Small Molecular Modulators

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.9b02038




x

[ASAP] Discovery of Potent Inhibitors against P-Glycoprotein-Mediated Multidrug Resistance Aided by Late-Stage Functionalization of a 2-(4-(Pyridin-2-yl)phenoxy)pyridine Analogue

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00337




x

[ASAP] Discovery of <italic toggle="yes">N</italic>-Ethyl-4-[2-(4-fluoro-2,6-dimethyl-phenoxy)-5-(1-hydroxy-1-methyl-ethyl)phenyl]-6-methyl-7-oxo-1<italic toggle="yes">H</italic>-pyrrolo[2,3-<italic toggle=&q

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00628




x

[ASAP] Ruthenium(II) Complex Containing a Redox-Active Semiquinonate Ligand as a Potential Chemotherapeutic Agent: From Synthesis to <italic toggle="yes">In Vivo</italic> Studies

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00431




x

[ASAP] Exploration of the Structural Space in 4(3<italic toggle="yes">H</italic>)-Quinazolinone Antibacterials

Journal of Medicinal Chemistry
DOI: 10.1021/acs.jmedchem.0c00153




x

[ASAP] Inhibitors of Hypoxia-Inducible Factors as Treatment for Cancer

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




x

[ASAP] Peptoid NPhe<sup>4</sup> in AGRP-Based c[Pro<sup>1</sup>-Arg<sup>2</sup>-Phe<sup>3</sup>-Phe<sup>4</sup>-Xxx<sup>5</sup>-Ala<sup>6</sup>-Phe<sup>7</sup>

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




x

[ASAP] Substituted Naphthalenediimide Compounds Bind Selectively to Two Human Quadruplex Structures with Parallel Topology

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




x

[ASAP] Exploring the Implication of DDX3X in DENV Infection: Discovery of the First-in-Class DDX3X Fluorescent Inhibitor

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




x

[ASAP] Sigma Receptor Ligands Carrying a Nitric Oxide Donor Nitrate Moiety: Synthesis, In Silico, and Biological Evaluation

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




x

[ASAP] Discovery of Adamantane Carboxamides as Ebola Virus Cell Entry and Glycoprotein Inhibitors

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




x

[ASAP] Benzoxazepine-Derived Selective, Orally Bioavailable Inhibitor of Human Acidic Mammalian Chitinase

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




x

[ASAP] Substituted Azabicyclo[2.2.1]heptanes as Selective Orexin-1 Antagonists: Discovery of JNJ-54717793

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




x

A BEM syntax with UX in mind

At some point, while working on the MontageJS framework, the question came up what CSS naming convention we should start using. After a long discussion we settled on using the BEM methodology, but changed the syntax a bit. To keep this post short, I won’t go into detail why using BEM is a good idea, but rather explain why we chose a different syntax. Here some examples:

.digit-Progress          /* org-Component */
.digit-Progress-bar      /* org-Component-childElement */
.digit-Progress--small   /* org-Component--variation */

Note: The org- (digit-) prefix is used as a name-space so it wouldn’t conflict with other packages/libraries/frameworks.

Now let’s take a look at the reasons for choosing such a syntax.

Hyphens (-)

The main reason why we’re using a hyphen (-) instead of underscores (_), has to do with the fact that their behavior is different when double-clicking to select text. Try for yourself:

component__element /* underscores */
component-element  /* hyphen */

See how when you’re using underscores it selects the part before and after, in this case the whole component__element. But with hyphens it let’s you select only the part you double-clicked. component OR element. This let’s you quickly edit only the parts you want:

camelCase

Now, what if the component or child element consists of multiple words? We could use underscores like component_name-element_name. It would still be double-clickable, but readability suffers since it’s harder to see what belongs together. Better to use camelCase which groups each part visually: componentName-elementName.

MainComponent

OK, I think we’re getting closer. As a last rule, for the “main” component we use PascalCase. The reason for it is to add emphasis and make it easier to distinguish the main component from a child element. Also when using a namespace, the component moves to the second position, which makes it even more important to have it stick out: org-Component-childElement

–variation

We kept the more commonly used double hyphens (–) for variations. digit-Progress--small. It makes sense, because it pulls the variation (–small) visually more apart and makes it look like it’s something “different” than the default component.


So that’s about it. For more details about this naming convention, take a look at the SUIT framework, which also started to use the same syntax and documented it really well.

In the end, whatever Shade of BEM you choose to cook with probably depends on your personal taste, but thinking about a great UX by improving usability and readability won’t hurt either.




x

Contextual styling with custom properties

Something I’ve been wanting for a long time, define different regions like a footer section, or side bar and not have to deal with all the contextual styling hassle. A.k.a. “Now that this button is used on a dark background, the button needs to change its colors too. Where should the styles live?”. Here an old post about struggling with contextual styling.

So then the other day I was doing some experiments with using custom properties for Atom’s UI. Turns out, using custom properties might make contextual styling a bit easier. For the rest of the post, let’s switch to a more simple example. A page where the main area is light, but then has a dark hero and footer section. Like this:

In the past, I probably would’ve created variations like Button--dark or overwrote it with header .Button {…}. Depends a bit on the project. Here another approach: Create themes with a set of variables, then apply the theme to the different areas.

1. Default theme

First let’s define our default theme with a bunch of variables.

[data-theme="default"] {
  --fg:         hsl(0,0%,25%);
  --border:     hsl(0,0%,75%);
  
  --bg:         hsl(0,0%,95%);
  --button-bg:  hsl(0,0%,99%);
  --input-bg:   hsl(0,0%,90%);
}

Then we create some components where we use the variables defined above.

[data-theme] {
  color: var(--fg);
  background-color: var(--bg);
}

.Button {
  color: var(--fg);
  border: 1px solid var(--border);
  background-color: var(--button-bg);
}

.Input {
  color: var(--fg);
  border: 1px solid var(--border);
  background-color: var(--input-bg);
}

And lastly we add the [data-theme="default"] attribute on the body so that our components will pick up the variables.

<body data-theme="default">

If you wonder why use data-theme attributes over classes? Well, no specific reason. Maybe with attributes, it’s a hint that only one theme should be used per element and is more separated from your other classes.

At this point we get this:

See the Pen Contextual styling with custom properties (1/3) by simurai (@simurai) on CodePen.

2. Dark theme

But our designer wants the hero and footer to be dark. Alright, let’s define another theme region.

[data-theme="dark"] {
  --fg:         hsl(0,10%,70%);
  --border:     hsl(0,10%,10%);
  
  --bg:         hsl(0,0%,20%);
  --button-bg:  hsl(0,0%,25%);
  --input-bg:   hsl(0,0%,15%);
}

And add the theme attribute to the header and footer.

<header data-theme="dark">
<footer data-theme="dark">

Which gives us this:

See the Pen Contextual styling with custom properties (2/3) by simurai (@simurai) on CodePen.

The reason why this works is that custom properties cascade and can be overridden on nested elements, just like normal properties.

3. Hero theme

A few months pass and our designer comes back with a redesigned hero section. “To make it look fresh” with a splash of color.

No problem! Just like with the dark theme, we define a new “hero” theme.

[data-theme="hero"] {
  --fg:         hsl(240,50%,90%);
  --border:     hsl(240,50%,10%);
  
  --bg:         hsl(240,33%,30%);
  --button-bg:  hsl(240,33%,40%);
  --input-bg:   hsl(240,33%,20%);
}
<header data-theme="hero">

And here is that fresh hero:

See the Pen Contextual styling with custom properties (3/3) by simurai (@simurai) on CodePen.

It’s also not limited to colors only, could be used for sizes, fonts or anything that makes sense to define as variables.

Benefits

Using these theme “regions” lets your components stay context un-aware and you can use them in multiple themes. Even on the same page.

  • Developers can add components, move components around, without having to know about in what context (theme) they live. The markup for the components stays the same.
  • Design systems authors can create new components without worrying about where they get used, the variables used in components stay the same.
  • Designers can define new theme regions, or change existing ones, without having to make changes to a component’s HTML or CSS, it stays the same.

Less time to talk about who, how and where, more time to talk about the weather. ☔️????

Concerns

Yeah, right. The big question: But does it scale? Can this be used for all use cases.

Ok, I’m pretty sure it doesn’t fit all situations. There are just too many to find a single solution for them all. And I’m actually not sure how well it scales. I guess it works great in these simple demos, but I have yet to find a larger project to test it on. So if you have used (or plan to use) this approach, I’m curious to know how it went.

A concern I can imagine is that the list of variables might grow quickly if themes have totally different characteristics. Like not just a bit darker or lighter backgrounds. Then you might need to have foreground and border colors for each component (or group of components) and can’t just use the general --fg and --border variables. Naming these variables is probably the hardest part.

Update I

@giuseppegurgone made an interesting comment:

in suitcss projects I used to define component level custom props, theme variables and then create themes by mapping the former to the latter suitcss-toolkit

So if I understood it correctly, by mapping theme variables to component variables, you could avoid your theme variables from growing too much and you can decide for each component how to use these theme variables.

Update II

If it’s too early to use custom properties in your project, @szalonna posted an example how to do something similar in SCSS.




x

એલજી નવા બે સ્માર્ટફોન X230Z અને M320H એફસીસી ઘ્વારા સર્ટિફાઈડ

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




x

Huguette Caland / edited by Anne Barlow, Sara Matson and Giles Jackson ; texts by Anne Barlow, Brigitte Caland and Negar Azimi

Rotch Library - N6537.C329 A4 2019




x

Mathias Goeritz: modernist art and architecture in Cold War Mexico / Jennifer Josten

Rotch Library - N6559.G64 J67 2018




x

For your pleasure: Johannes Brus, photoworks and sculptures / with an essay by Clément Chéroux

Rotch Library - N6888.B745 A4 2018




x

Anna Maria Maiolino, Entre pausas / texts by Anna Maria Maiolino, Tania Rivera and Randy Kennedy

Rotch Library - NC200.M27 A4 2018




x

Djordje Ozbolt: regaining memory loss / exhibition curator, Nicoletta Lambertucci

Rotch Library - N6488.I8 V433 2019 Y8




x

Arnaud Vasseux: pièces non balayées.

Rotch Library - NB553.V37 A4 2018




x

Heirloom / Larissa Sansour ; text by Nat Muller

Rotch Library - N6488.I8 V433 2019 D4




x

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




x

Panos Charalambous, Eva Stefani, Zafos Xagoraris / curated by Katerina Tselou

Rotch Library - N6488.I8 V433 2019 G8




x

Design by accident: for a new history of design / Alexandra Midal

Rotch Library - NK1175.M53 2019




x

Touch me / Johannes Frandsen ; text, Mattias Lundblad

Rotch Library - TR650.F73 2018




x

Albanian pavilion 2019: maybe the cosmos is not so extraordinary: Driant Zaneli

Rotch Library - N6488.I8 V433 2019 A38




x

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

Hayden Library - N6493 1925.M35 2018




x

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




x

Animal: exploring the zoological world / project editor, Lucy Kingett

Hayden Library - N7660.A653 2018




x

Sergei Romanov / edited by Oksana Salamatina ; essay by Lyle Rexer

Rotch Library - TR655.R66 2018




x

Conversation pieces: the world of Bruegel / Abdelkader Benali, Alexandra van Dongen, Katrien Lichtert, Sabine Pénot, Lucinda Timmermans ; translation, Patrick Lennon, Michael Lomax

Rotch Library - ND673.B73 B46 2018




x

Ghana freedom: Ghana pavilion at the 58th International Art Exhibition La Biennale di Venezia

Rotch Library - N6488.I8 V433 2019 G4




x

Mary Corse: a survey in light / Kim Conaty ; with contributions from Robin Clark, Michael Govan, Alexis Lowry, and David Reed

Rotch Library - N6537.C663 A4 2018




x

My art guide: Venice 2019, 58th Biennale Arte: national participations, collateral events, exhibitions, events, museums, foundations, restaurants, hotels, city maps

Rotch Library - N6488.I8 V433 2019 A11




x

Voyaging out: British women artists from suffrage to the sixties / Carolyn Trant

Rotch Library - N8354.T72 2019




x

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

Rotch Library - N6512.M479 2019




x

Art beyond borders: artistic exchange in communist Europe (1945-1989) / edited by Jérôme Bazin, Pascal Dubourg Glatigny, and Piotr Piotrowski

Online Resource




x

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

Online Resource




x

Expanded internet art: twenty-first century artistic practice and the informational milieu / Ceci Moss

Rotch Library - N7433.8.M67 2019




x

Bestowing beauty: masterpieces from Persian lands-selections from the Hossein Afshar collection / edited by Aimée Froom ; with essays by Walter B. Denny, Aimée Froom, Melanie Gibson, and David J. Roxburgh; and contributions by Robert Hillenbrand

Rotch Library - N7280.B47 2019




x

The Oxford dictionary of American art and artists / Ann Lee Morgan

Online Resource




x

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

Rotch Library - TR681.A7 P53 2018




x

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

Rotch Library - N7345.6.W46 2018