neumorphic_ui

Creator: coderz1093

Last updated:

Add to Cart

Description:

neumorphic ui

flutter_neumorphic #
A complete, ready to use, Neumorphic ui kit for Flutter

Try Flutter-Neumorphic on your browser : πŸ‘‰ https://flutter-neumorphic.firebaseapp.com/ 🌐

βš™οΈ Installation #
https://pub.dev/packages/flutter_neumorphic


dependencies:
flutter_neumorphic: ^3.0.3

//requires flutter > 1.13.18
copied to clipboard
The in your .dart files
import 'package:flutter_neumorphic/flutter_neumorphic.dart';
copied to clipboard
πŸ—‚ Widgets #



Preview
Widget
Description





Neumorphic
The main Neumorphic Widget, a container which adds white/dark gradient depending on a lightsource and a depth



NeumorphicButton
A neumorphic button that plays with the depth to respond to user interraction



NeumorphicRadio
A set of neumorphic button whith only one selected at time, depending on a value and groupValue



NeumorphicCheckbox
A button associated with a value, can be checked/unckecked, if checked, takes the accent color



NeumorphicText
A Neumorphic text (only work with positive depth)



NeumorphicIcon
A Neumorphic icon (only work with positive depth)



material.TextField
For TextFields, just surround your existing material textfield widget with a Neumorphic (container)



NeumorphicSwitch
An On/Off toggle, associated with a value, if toggled, takes the accent color



NeumorphicToggle
An mutiple value toggle, associated with a selecteedIndex



NeumorphicSlider
A Neumorphic seekbar (range slider), the user can select a value in a range



NeumorphicProgress
A determinate progress, takes the displayed percentage



NeumorphicProgressIndeterminate
An inderminate progress-bar



NeumorphicBackground
Take the background color of the theme, can clip the screen with a borderRadius



NeumorphicApp
An application that uses Neumorphic design. Handle theme, navigation, localisation, and much more



NeumorphicAppBar
A Neumorphhic design app bar. Can be used inside Scaffold



πŸ‘€ Showcases #




πŸ“¦ Neumorphic #

Neumorphic(
style: NeumorphicStyle(
shape: NeumorphicShape.concave,
boxShape: NeumorphicBoxShape.roundRect(BorderRadius.circular(12)),
depth: 8,
lightSource: LightSource.topLeft,
color: Colors.grey
),
child: ...
)
copied to clipboard


☝️ Playing with LightSource & Depth
πŸ› οΈ Attributes #



Attributes
Values
Description




LightSource
TopLeft, BottomRight, etc. / (dx, dy)
The source of light specifit to the theme or the widget, used to project white/dark shadows on neumorphic elements


Shape
Concave / Convex / Flat
The shape of the curve used in the neumorphic container


Depth
-20 <= double <= 20
The distance of the widget to his parent. Can be negative => emboss. It influences on the shadow's color and its size/blur


Intensity
0 <= double <= 1
The intensity of the Light, it influences on the shadow's color


SurfaceIntensity
0 <= double <= 1
The intensity of the Surface, it influences on the concave/convex darkness


Color
any Color
The default color of Neumorphic elements


Accent
any Color
The default accent color of the Neumorphic element when activated (eg: checkbox)


Variant
any Color
The default secondary color of the Neumorphic element (eg: used as second color on the progress gradient)


BoxShape
Circle, RoundRect(radius), Stadium, Path
The box shape of a Neumorphic element. Stadium : roundrect with cirlces on each side


Border
NeumorphicBorder
A border (color/width) to enhance contrast with background and others elements







πŸ”§ Shapes #



Shape
Widget
Image
Condition




Flat


depth >= 0 && shape == Flat


Convex


depth >= 0 && shape == Convex


Concave


depth >= 0 && shape == Concave


Emboss


depth < 0



Neumorphic Text #

Text only handle positive depth
child: NeumorphicText(
"I love flutter",
style: NeumorphicStyle(
depth: 4, //customize depth here
color: Colors.white, //customize color here
),
textStyle: NeumorphicTextStyle(
fontSize: 18, //customize size here
// AND others usual text style properties (fontFamily, fontWeight, ...)
),
),
copied to clipboard
Neumorphic Icon #

child: NeumorphicIcon(
Icons.add_circle,
size: 80,
),
copied to clipboard
How to display SVG icons ?
Simply use https://fluttericon.com/ to export your svg as .ttf & use NeumorphicIcon(YOUR_ICON)

🎨 Custom Shape #

Flutter Neumorphic supports custom shapes, just provide a path to
class MyShapePathProvider extends NeumorphicPathProvider {
@override
bool shouldReclip(NeumorphicPathProvider oldClipper) {
return true;
}

@override
Path getPath(Size size) {
return Path()
..moveTo(0, 0)
..lineTo(size.width/2, 0)
..lineTo(size.width, size.height/2)
..lineTo(size.width/2, size.height/2)
..lineTo(size.width, size.height)
..lineTo(0, size.height)
..close();
}
}
copied to clipboard
And use NeumorphicBoxShape.path
Neumorphic(
style: NeumorphicStyle(
boxShape: NeumorphicBoxShape.path(MyShapePathProvider()),
),
...
),
copied to clipboard
You can import the Flutter logo as a custom shape using
Neumorphic(
style: NeumorphicStyle(
shape: NeumorphicBoxShape.path(NeumorphicFlutterLogoPathProvider()),
),
...
),
copied to clipboard
πŸ”² Accessibility / Border #
For design purposes, or simply to enhance accessibility,
you can add a border on Neumorphic widgets

Neumorphic(
style: NeumorphicStyle(
border: NeumorphicBorder(
color: Color(0x33000000),
width: 0.8,
)
),
...
)
copied to clipboard
You can enable/disable it (eg: listening an Accessibility Provider) with isEnabled
border: NeumorphicBorder(
isEnabled: true,
color: Color(0x33000000),
width: 0.8,
)
copied to clipboard
Note that borderColor and borderWidth default values has been added to NeumorphicThemeData
🎨 Neumorphic Theme #


NeumorphicTheme(
themeMode: ThemeMode.light, //or dark / system
darkTheme: NeumorphicThemeData(
baseColor: Color(0xff333333),
accentColor: Colors.green,
lightSource: LightSource.topLeft,
depth: 4,
intensity: 0.3,
),
theme: NeumorphicThemeData(
baseColor: Color(0xffDDDDDD),
accentColor: Colors.cyan,
lightSource: LightSource.topLeft,
depth: 6,
intensity: 0.5,
),
child: ...
)
copied to clipboard
To retrieve the current used theme :
final theme = NeumorphicTheme.currentTheme(context);
final baseColor = theme.baseColor;
final accentColor = theme.accentColor;
...
copied to clipboard
Toggle from light to dark
NeumorphicTheme.of(context).themeMode = ThemeMode.dark;
copied to clipboard
Know if using dark
if(NeumorphicTheme.of(context).isUsingDark){

}
copied to clipboard
NeumorphicApp #
You can use direcly in your project a NeumorphicApp, surrounding your code
It handle directly NeumorphicTheme & Navigation (and all possibilities of MaterialApp )
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return NeumorphicApp(
debugShowCheckedModeBanner: false,
title: 'Neumorphic App',
themeMode: ThemeMode.light,
theme: NeumorphicThemeData(
baseColor: Color(0xFFFFFFFF),
lightSource: LightSource.topLeft,
depth: 10,
),
darkTheme: NeumorphicThemeData(
baseColor: Color(0xFF3E3E3E),
lightSource: LightSource.topLeft,
depth: 6,
),
home: MyHomePage(),
);
}
}
copied to clipboard
What's neumorphic #

Material Cards #
A Modern / Material (upgraded) card usually is a surface floating on top of our perceived background and casting a shadow onto it. The shadow both gives it depth and also in many cases defines the shape itself β€” as it’s quite often borderless.
Neumorphic cards #
Neumorphic card however pretends to extrude from the background. It’s a raised shape made from the exact same material as the background. When we look at it from the side we see that it doesn’t β€œfloat”.

Here's a Nereumorphic Button tap (slowed x2) from the sample app, you can see how the element seems to change its depth to its surface.
πŸ‘₯ Contributors #




Contributors





Florent Champigny



Olivier Bonvila



Gyl Jean Lambert



Jimmy Aumard



Overman775



schopy



πŸ“„ License #
Flutter-Neumorphic is released under the Apache2 license.
See LICENSE for details.
If you use the open-source library in your project, please make sure to credit and backlink to www.idean.com

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.