Category: UI UX Design

User Interface & User Experience Design

Adding SASS Support in Angular Projects

Once the project is generated with Angular/CLI, set default style extension:

ng set defaults.styleExt scss

After you have generated a new component:

ng g c MyComponent

you will see MyComponent.scss in your MyComponent folder.

If you open the scss-file, WebStorm will ask you, if you want to add file-watchers for this type of extension. This procedure is normally not necessary, because angular/cliwill generate and update your project automatically.

Anyway, If you want to add file-watcher for SCSS (on McOS):

  1.  brew install ruby
  2. gem install sass

WebStorm will automatically recognize the installation path (on McOS /usr/local/bin/scss).

Angular2 & Bootstrap-Select

Activate Bootstrap-Select-Box after the data is here:

ngAfterViewChecked () {
    if (this.data_for_selectbox_ready) {  // <-- IMPORTANT!
      //noinspection TypeScriptUnresolvedFunction

Pattern Library Generators

Pattern Libraries (or Style Guides) are a helpful tool in developing websites. Read more about Creating Style Guides at this A List Apart article.

Maintaining a static Pattern Library (in HTML/CSS) is hard work and errorprone. There are, however, various tools that help us generate a dynamic Pattern Library or ‘Living Style Guide’.

>> Read more and see the complete list here


ReactJS (or simple React) is a JavaScript library from facebook to create User Interfaces.

We built React to solve one problem: building large applications with data that changes over time.

>> Read more

CSS Selectors Revisited

All elements * {..}
All children #container * {..}
ALL a IN each li li a {..}
Only direct children IN each li li > a {..}
Only first immediately following p after each ul ul + p
All following p after each ul ul ~ p {}
All a with title attribut a[title] {..}
All a with href = “foo” a[href=”foo”] {..}
All a containing the given chunk somewhere it the attribut a[href*=”chunk”] {..}
Any Attribut containing the chunk, in this case “data” a[data-*=”foo”]{..}
All a with beginning “http” in the href attribut a[href^=”http”] {..}
… ending with “.jpg” a[href$=”.jpg”]{..}
foo has a spaced-separated list of values AND “xyz” is somewhere in the list x[foo~=”xyz”]
Checked radio buttons input[type=radio]:checked {..}
Checked check-boxes input[type=checkbox]:checked {..}
Append an element after an element x:after {..}
Exclude all divs with the id foo div:not(#foo) {..}
Exclude all divs with class bar div:not(.bar) {..}
All elements except each p *:not(p) {..}
tag::pseudoElement x::pseudoElement {..}
First lines of each p p::first-line {..}
First letter of each p p::first-letter {..}
nth-child (not zeo based integer) x:nth-child(n) {..}
nth from last child x:nth-last-child(n) {..}
Every second row tr:nth-of-type(2) {..}
From the end nth type x:nth-last-of-type(n) {..}
First child x:first-child {..}
Last child x:last-child {..}
With single child x:only-child {..}
All divs with a single p div p:only-child {..}
Without siblings in its parent li:only-of-type {..}
First children with a certain type x:first-of-type {..}
Link a:link {..}
Visited a:visited {..}
Hover x:hover {..}

CSS Flex Revisited

Container Item
flex-flow (flex-direction, flex-wrap)


Copyright © 2020 EBIA

Theme by Anders NorenUp ↑