Skip to content

applibgroup/Neuomorphism_Documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Neumorphism

Neumorphism (aka neomorphism) is a relatively new design trend and a term that's gotten a good amount of buzz lately.

It derives its name from skeuomorphism – a way of integrating real-world objects into user interface design.

Well in order to understand Neumorphism let's understand what is Skeuomorphism and flat designs first.

Skeuomorphism is a term used to define an interface that mimics real-world items. to cite you with an example it is like the recycle bin icon on the desktop screen and the dial icon on mobile phones. However these 3-dimensions looking elements started looking unnecessary and made the UI look cluttered and that's when the existence of Flat Design came into existence.

Flat design is a user interface design style that uses simple, two-dimensional elements and bright colors and it makes it feel like all the objects are lying on a Single Surface.


In the below series of image it gives you an evolution of design starting from Skeuomorphism and then the flat designs and finally the Neumorphism.


      Skeuomorphism                                                Flat design                                                Neumorphism

Neumorphism


Neumorphic design draws from both skeuomorphism and flat design by pairing a monochromatic color palette with subtle shadows, while giving a sense of 3-dimensions in the form of buttons and other elements.

What makes it unique is the game of shadows and shades that Neumorphism uses to create very realistic buttons and objects. It gives the users a distinct feel.



Benefits of Neumorphism

  • It adds 3D feel for real buttons and Visual Freshness.
  • Overloaded interfaces are bypassed by users.
  • Neumorphism designs remain a timeless classic.
  • It accelerates the process of conceptualizing, building, testing, and iterating new screens.

This is the library reference Here

Similarly we can implement the below list of components.

Components Display Description
avatar                                                  Avatar is used to display the profile image with Neumorphism effect. We have access to the listed properties like icon, width, height and border and icon is the property used to add the image. More info can be found here.
button Button is slightly different with just not text but also has a icon prefixed and a onclick event which is triggered when the button is clicked.List of properties are icon, width, height and border and icon is the property to be used. More info can be found here.
buttons Buttons is unique with slots on the left and right to add text, onclick event which is triggered when the button is clicked.List of properties are icon, width, height and slots be used. More info can be found here.
checkbox Checkbox is the simple checkbox option with Neumorphism effect and more info can be found here.
dropdown Dropdown with Neumorphism effect with simple list items and more info can be found here.
form Form with Neumorphism effect is a unique component with text fields which is the neuinput component and more info can be found here.
input Input with Neumorphism effect is a basic component for building forms with properties like type, maxlength and placeholder more info can be found here.
label Label can be used with Input in which you can add the icon and the text, more info can be found here.
navbar Navbar is a very interesting component that will help you to display 3 icon format with slots, more info can be found here.
pagination Pagination with Neumorphism style and every page is a button , more info can be found here.
progress Progress which indicates the progress of particular action item with progress properties and color can provided to highlight the indicator, more info can be found here.
radio Radio which is like checkbox simple as such in which you can perform two operation slike on or off, more info can be found here.
switcher Switcher is more like a switcher which is like you want to turn on or turn off actions, more info can be found here.

Let’s go through some of the uses cases and there implementation using Neumorphism library.

Smart Watch

The complete uses cases code can be found here.

The below uses cases is a simple Smartwatch implemented using the Neumorphism library and every component displayed in the smartwatch are the neumorphic component like listed below.

  • neutheme
  • neubutton
  • neucard


In order to display a simple card with title, subject and message, below is the code snippet used.

Usage:

<neucard if="{{notifications}}" class="footer">
            <neubutton class="footer_icon">
                <image src="common/images/snooze.png"></image>
            </neubutton>
            <div class="footer_info semi_bold dark_text">
                <div class="footer_title">
                    <text>{{notification_title}}</text>
                </div>
                <div class="footer_subject">
                    <text>{{notification_subject}}</text>
                </div>
                <div class="message">
                    <text>{{notification_message}}</text>
                </div>
            </div>
        </neucard>

With the above snippet we can get the below design.


Smart Home Dark and Light Theme

The complete uses case code can be found here.

The below uses case is a simple Living Room Design in Dark mode and Light mode and it is implemented using the Neumorphism library and every component displayed in the Living Room are the neumorphic component like listed below.

  • neutheme
  • neucard
  • swiper


          

In order to display a simple ring progress bar with plus and minus icons to increase the temperature, below is the code snippet used.

Usage:

 <div class="controller">
                            <div class="minus semi_bold light_text">
                                <text>.05&deg;C</text>
                                <neubutton class="minus_button theme_bg" @button-event="decreaseTemp">
                                        <text>-</text>
                                </neubutton>
                            </div>
                            <div class="level semi_bold light_text">
                                <text>10&deg;C</text>
                                <div class="range">
                                    <div class="curve_bg">
                                        <div class="progress">
                                            <progress class="progress_bar theme_text" type="ring" percent="{{(temperature-15)*6}}"></progress>
                                            <div class="progress_value">
                                                <div class="progress_value_header semi_bold dark_text">
                                                    <text>{{temperature}}&deg;C</text>
                                                </div>
                                                <div class="progress_value_footer regular light_text">
                                                    <text>Celcius</text>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="plus semi_bold light_text">
                                <text>.25&deg;C</text>
                                <neubutton class="plus_button theme_bg" @button-event="increaseTemp">
                                        <text>+</text>
                                </neubutton>
                            </div>
                        </div>

With the above snippet we can get the below design.


Smart Home Light and Dark Theme Phone Mode

The complete use case code can be found here.

Like the above Living room design we have the same Design in phone mode for Light mode and Dark Mode and it is implemented using the Neumorphism library and every component displayed in the Living Room are the neumorphic components.



                         


Below are the components created with Neumorphic effect

Alert

Alert components use to notify user of information Lets see how to create the alert component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neualert' src='hmos-neumorphism/alert/alert.hml'></element>
  1. Now we need use the tag named "neualert" and define the parameters like icon and Text as shown below.

Usage:

<neualert icon="common/icons/heart.png" width="300px" height="60px" border="40px" >
     <text>Alert</text>
</neualert>
<neualert icon="common/icons/user.png" width="300px" height="60px" border="40px" >
     <text>Profile</text>
</neualert>

Below are list of properties available.

Properties Description
icon Icon represent the image which is placed in the left corner of the alert box.
width, height Defines the height and width of the alert box.
border Defines the border of the alert box.

That's it by doing this we will get the below Neumorphic alert design and some variations.


# Avatar Avatar components use to notify user of information

Let's see how to create the Avatar component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neuavatar' src='hmos-neumorphism/avatar/avatar.hml'></element>
  1. Now we need use the tag named "neuavatar" and define the parameters like icon shown below.

Usage:

<neuavatar icon="common/icons/user.png" width="100px" height="100px" border="50px"></neuavatar>

Below are list of properties available.

Properties Description
icon Icon represent the image which is placed in the Center of the Avatar box.
width, height Defines the height and width of the Avatar box.
border Defines the border of the Avatar box.

That's it by doing this we will get the below Neumorphic avatar design.


Button

Button components use to notify user of information

Let's see how to create the button component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neubutton' src='hmos-neumorphism/buttons/button.hml'></element>
  1. Now we need use the tag named "neubutton" and define the parameters like icon and Text as shown below.

Usage:

<neubutton icon="common/icons/heart.png" width="250px" height="60px" border="50px" onclick="buttonClick">
    <text>Button</text>
</neubutton>

<neubutton icon="common/icons/home.png" width="250px" height="60px" border="50px" onclick="buttonClick">
    <text>Home</text>
</neubutton>

Below are list of properties available.

Properties Description
icon Icon represent the image which is placed in the left corner of the button.
width, height Defines the height and width of the Button box.
border Defines the border of the button box.
button-event When clicked on the button we need to define the action here.

That's it by doing this we will get the below Neumorphic Button design.


Buttons

Buttons components use to notify user of information

Let's see how to create the buttons component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neubuttons' src='hmos-neumorphism/buttons/buttons.hml'></element>
  1. Now we need use the tag named "neubuttons" and define the parameters like slots and onclick as shown below.

Usage:

<neubuttons  width="250px" height="60px" border="50px">
    <button slot="first">Left</button>
    <button slot="second">Right</button>
</neubuttons>

<neubuttons  width="250px" height="60px" border="50px">
    <button slot="first">On</button>
    <button slot="second">Off</button>
</neubuttons>

Below are list of properties available.

Properties Description
width, height Defines the height and width of the Buttons box.
border Defines the border of the buttons box.
onclick When clicked on the button we need to define the action here.
slot Slot with class ="first" ensure the content is added to the left and class ="second" the content is added to the Right

That's it by doing this we will get the below Neumorphic buttons design.


Card

Now let's how to implement a card design.

  1. Import: the node component and you can refer that from library here as shown below.

Import:

<element name='neucard' src='hmos-neumorphism/avatar/avatar.hml'></element>
  1. Now we need use the tag named "neucard" and define the parameters like height, width and border as shown below and the image to display inside the card, you can replace it with text as well.

Usage:

<neucard width="300px" height="200px" border="10px" >
  <image src="common/placeholder.png" ></image>
</neucard>

Below are list of properties available.

Properties Description
width, height Defines the height and width of the Card.
border Defines the border of the card.
image Image defines the placeholder image.

That's it by doing this we will get the below Neumorphic card design.


Checkbox

Checkbox components use to notify user of information

Let's see how to create the checkbox component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neucheckbox' src='hmos-neumorphism/checkbox/checkbox.hml'></element>
  1. Now we need use the tag named "neucheckbox" and define the parameters like color, width, height, check-event as shown below.

Usage:

<neucheckbox color="#0092df" width="50px" height="50px" border="50px" checked="true" @check-event="checkboxClick"></neucheckbox>
<neucheckbox color="#00dd19" width="50px" height="50px" border="50px" checked="true" @check-event="checkboxClick"></neucheckbox>

Below are list of properties available.

Properties Description
color Defines the color of the Checkbox.
width, height Defines the height and width of the checkbox box.
checked This property defines if the checkbox needs to be checked or not, if true it is checked and false makes it unchecked.
check-event When clicked on the checkbox we need to define the action here.

That's it by doing this we will get the below Neumorphic checkbox design.


Dropdown

Dropdown components use to notify user of information

Let's see how to create the dropdown component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neudropdown' src='hmos-neumorphism/dropdown/dropdown.hml'></element>
  1. Now we need use the tag named "neudropdown" and define the parameters like change-event option value as shown below.

Usage:

<neudropdown width="200px" height="50px" border="10px" @change-event="dropdownSelect">
      <select @change="dropdownSelect">
          <option value="Item 1">Item 1</option>
          <option value="Item 2">Item 2</option>
          <option value="Item 3">Item 3</option>
          <option value="Item 4">Item 4</option>
          <option value="Item 5" selected="true">Item 5</option>
      </select>
  </neudropdown>

  <neudropdown width="200px" height="50px" border="10px" @change-event="dropdownSelect">
      <select @change="dropdownSelect">
          <option value="Item 1">Bangalore</option>
          <option value="Item 2">Chicago</option>
          <option value="Item 3">Toronto</option>
          <option value="Item 4">Orlando</option>
          <option value="Item 5" selected="true">Select a City</option>
      </select>
  </neudropdown>

Below are list of properties available.

Properties Description
width, height Defines the height and width of the Dropdown box.
selected This property defines which item of the dropdown item to be displayed as default in the dropdown, true and false are the values that can be set.
change-event when clicked on the checkbox we need to define the action here.

That's it by doing this we will get the below Neumorphic dropdown design.

         


Form

Form components use to notify user of information

Let's see how to create the form component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neuform' src='hmos-neumorphism/form/form.hml'></element>
  1. Now we need use the tag named "neuform" and define the parameters like neuinput,neubutton, input type and so on as shown below.

Usage:

<neuform width="350px" height="300px" border="20px" @submit-event="buttonClick" @reset-event="buttonClick">
 <neuinput icon="common/icons/user.png" type="email" maxlength="20" placeholder="Email" border="30px"></neuinput>
 <neuinput icon="" type="password" maxlength="20" placeholder="Password" border="20px"></neuinput>
 <div>
  <neubutton icon="" width="150px" border="20px">
   <input type='submit' style="border-radius:20px;">Submit</input>
  </neubutton>
  <neubutton icon="" width="150px" border="20px">
   <input type='reset' style="border-radius:20px;">Reset</input>
  </neubutton>
 </div>
</neuform>

Below are list of properties available.

Properties Description
width, height Defines the height and width of the Form box.
submit-event The form contains the submit button, and the action related to submit event is defined here.
reset-event The form contains the reset button, and the action related to reset event is defined here.

That's it by doing this we will get the below Neumorphic form design.


Input

Input components use to notify user of information

Let's see how to create the input component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neualert' src='hmos-neumorphism/input/input.hml'></element>
  1. Now we need use the tag named "neualert" and define the parameters like icon, type, placeholder as shown below.

Usage:

<neuinput icon="common/icons/user.png" type="text" maxlength="20" placeholder="Input" width="300px" height="50px" border="50px" ></neuinput>

Below are list of properties available.

Properties Description
icon Defines the icon for the input form and placed on the left corner.
type The type property defines the type of data accepted in the input form
maxlength This property defines the maxlength that you can input in the field
placeholder This property defines the field is input.
width, height This property defines the width and height of the input field.
border This property defines the border of the input field.

That's it by doing this we will get the below Neumorphic input design.


# Label Label components use to notify user of information

Let's see how to create the label component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neulabel' src='hmos-neumorphism/label/label.hml'></element>
  1. Now we need use the tag named "neulabel" and define the parameters like icon and text as shown below.

Usage:

<neulabel text="Label" icon="common/icons/heart.png" width="200px" height="50px" border="50px" ></neulabel>

Below are list of properties available.

Properties Description
icon Defines the icon for the label and placed on the left corner.
text This property defines the field is label.
width, height This property defines the width and height of the label field.
border This property defines the border of the label field.

That's it by doing this we will get the below Neumorphic label design.


Navbar

Navbar components use to notify user of information

Let's see how to create the navbar component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neunavbar' src='hmos-neumorphism/navbar/navbar.hml'></element>
  1. Now we need use the tag named "neunavbar" and define the parameters like image and text as shown below.

Usage:

<neulabel text="Label" icon="common/icons/heart.png" width="200px" height="50px" border="50px" ></neulabel>

  <neunavbar  width="300px" height="50px" border="50px" @right-event="buttonClick" @middle-event="buttonClick" @left-event="buttonClick">
      <image slot="first" src="common/icons/recent.png" style="width:20px; height: 20px;" ></image>
      <image slot="second" src="common/icons/home.png" style="width:20px; height: 20px;" ></image>
      <image slot="third" src="common/icons/return.png" style="width:20px; height: 20px;" ></image>
  </neunavbar>

  <neunavbar  width="300px" height="50px" border="50px" @right-event="buttonClick" @middle-event="buttonClick" @left-event="buttonClick">
      <text slot="first" style="color: #ea7979;" >Home</text>
      <text slot="second" style="color: #ea7979;" >Profile</text>
      <text slot="third" style="color: #ea7979;" >Settings</text>
  </neunavbar>

Below are list of properties available.

Properties Description
width, height This property defines the width and height of the Navbar.
right-event This property defines the action item placed on the right of the navigation.
middle-event This property defines the action item placed on the middle of the navigation.
left-event This property defines the action item placed on the left of the navigation.
slot This property defines the position of the icon, slot="first", the image is placed in left, slot="second", the image is placed in middle, slot="third", the image is placed in right.

That's it by doing this we will get the below Neumorphic navbar design.


Pagination

Pagination components use to notify user of information

Let's see how to create the pagination component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neupagination' src='hmos-neumorphism/pagination/pagination.hml'></element>
  1. Now we need use the tag named "neupagination" and define the parameters like color,next-event and previous-event as shown below.

Usage:

<neupagination color="" width="300px" height="50px" border="50px"  @previous-event="previousEvent" @next-event="nextEvent">
    <button>1</button>
    <button>2</button>
    <button>3</button>
    <button>4</button>
    <button>5</button>
</neupagination>

<neupagination color="#0092df" width="300px" height="50px" border="50px"  @previous-event="previousEvent" @next-event="nextEvent">
    <button>1</button>
    <button>2</button>
    <button>3</button>
    <button>4</button>
    <button>5</button>
</neupagination>

Below are list of properties available.

Properties Description
color This property defines the color of the arrow in the pagination
width, height This property defines the width and height of the pagination.
border This property defines the border of the pagination.
previous-event This property defines the action item placed on the left arrow of the pagination.
next-event This property defines the action item placed on the right arrow of the pagination.

That's it by doing this we will get the below Neumorphic pagination design.


Progress

Progress components use to notify user of information

Let's see how to create the Progress component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neuprogress' src='hmos-neumorphism/progress/progress.hml'></element>
  1. Now we need use the tag named "neuprogress" and define the parameters like progress value as shown below.

Usage:

    <neuprogress progress="80%" width="300px" color="" height="20px" border="50px"></neuprogress>
    <neuprogress progress="20%" width="300px" color="#04ff00" height="20px" border="50px"></neuprogress>
    <neuprogress progress="60%" width="300px" color="#ff0000" height="20px" border="50px"></neuprogress>

Below are list of properties available.

Properties Description
color This property defines the color of the progress.
width, height This property defines the width and height of the progress.
border This property defines the border of the progress.
progress This property defines the value of the progress value in percent.

That's it by doing this we will get the below Neumorphic Progress design.


Radio

Radio components use to notify user of information

Let's see how to create the radio component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neuradio' src='hmos-neumorphism/radio/radio.hml'></element>
  1. Now we need use the tag named "neuradio" and define the parameters like color, width and check-event as shown below.

Usage:

    <neuradio width="50px" color="" height="50px" border="50px" checked="true" @check-event="radioClick"></neuradio>
    <neuradio width="50px" color="#0092df" height="50px" border="50px" checked="true" @check-event="radioClick"></neuradio>
    <neuradio width="50px" color="#00dd19" height="50px" border="50px" checked="true" @check-event="radioClick"></neuradio>

Below are list of properties available.

Properties Description
color Defines the color of the Radio.
width, height Defines the height and width of the Radio box.
checked This property defines if the radio needs to be checked or not, if true it is checked and false makes it unchecked.
check-event When clicked on the radio we need to define the action here.

That's it by doing this we will get the below Neumorphic radio design.


Switcher

Switcher components use to notify user of information

Let's see how to create the Switcher component in HarmonyOS.

  1. Import: the node component and you can refer that from library here as shown below.
<element name='neuswitcher' src='hmos-neumorphism/switcher/switcher.hml'></element>
  1. Now we need use the tag named "neumorph_switcher" and define the parameters like color, toggle, toggle-event as shown below.

Usage:

    <neuswitcher width="60px" color="#0092df" height="30px" border="50px" toggle="off" @toggle-event="toggleClick"></neuswitcher>
    <neuswitcher width="60px" color="#00dd19" height="30px" border="50px" toggle="on" @toggle-event="toggleClick"></neuswitcher>
    <neuswitcher width="60px" color="" height="30px" border="50px" toggle="off" @toggle-event="toggleClick"></neuswitcher>

Below are list of properties available.

Properties Description
color Defines the color of the Switcher.
width, height Defines the height and width of the Switcher box.
toggle This property defines if the Switcher needs to be checked or not, if true it is checked and false makes it unchecked.
toggle-event When clicked on the Switcher we need to define the action here.

That's it by doing this we will get the below Neumorphic Switcher design.


You can find the component implementation on HarmonyOS here.

If you haven't tried this unique style of designing then give it a try. With that being said, designers have been coming up with new design ideas that expand on the concept of Neumorphism every day. I am excited to see the interesting components that you can create.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published