100 SIMPLE NEUMORPHISM LOGIN FORMS IN JAVA

INTRODUCTION TO NEUMORPHISM

Neumorphism (Neo-Skeuomorphism) is a modern design trend that creates soft, extruded plastic-like interfaces with dual shadows (light and dark) to create a subtle 3D effect. Below are 100 different neumorphism-style login forms created with Java Swing.


SECTION 1: BASIC NEUMORPHISM FORMS (1-10)

1. Basic Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class BasicNeumorphicLogin extends JFrame {
public BasicNeumorphicLogin() {
setTitle("Neumorphic Login");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Background
g2d.setColor(new Color(225, 225, 230));
g2d.fillRect(0, 0, getWidth(), getHeight());
// Main panel neumorphic effect
int w = getWidth(), h = getHeight();
// Light shadow (top-left)
g2d.setColor(new Color(255, 255, 255, 200));
g2d.fillRoundRect(10, 10, w-20, h-20, 30, 30);
// Dark shadow (bottom-right)
g2d.setColor(new Color(180, 180, 190, 150));
g2d.fillRoundRect(0, 0, w-20, h-20, 30, 30);
// Main background
g2d.setColor(new Color(225, 225, 230));
g2d.fillRoundRect(5, 5, w-30, h-30, 25, 25);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Title
JLabel title = new JLabel("NEUMORPHIC");
title.setFont(new Font("Segoe UI", Font.BOLD, 28));
title.setForeground(new Color(80, 80, 90));
// Neumorphic fields
JTextField username = createNeumorphicField("Username");
JPasswordField password = createNeumorphicPassword("Password");
// Neumorphic button
JButton loginBtn = createNeumorphicButton("LOGIN");
// Layout
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(15, 40, 15, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(40, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(username, gbc);
gbc.gridy = 2;
mainPanel.add(password, gbc);
gbc.gridy = 3; gbc.insets = new Insets(25, 40, 40, 40);
mainPanel.add(loginBtn, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createNeumorphicField(String placeholder) {
JTextField field = new JTextField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Neumorphic inset effect
g2d.setColor(new Color(225, 225, 230));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 20, 20);
// Inner shadow
g2d.setColor(new Color(180, 180, 190, 100));
g2d.drawRoundRect(2, 2, getWidth()-4, getHeight()-4, 18, 18);
// Inner highlight
g2d.setColor(new Color(255, 255, 255, 150));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 19, 19);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 90));
field.setCaretColor(new Color(80, 80, 90));
return field;
}
private JPasswordField createNeumorphicPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(new Color(225, 225, 230));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 20, 20);
g2d.setColor(new Color(180, 180, 190, 100));
g2d.drawRoundRect(2, 2, getWidth()-4, getHeight()-4, 18, 18);
g2d.setColor(new Color(255, 255, 255, 150));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 19, 19);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 90));
field.setEchoChar('•');
return field;
}
private JButton createNeumorphicButton(String text) {
JButton button = new JButton(text) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
if (getModel().isPressed()) {
// Pressed effect (inset)
g2d.setColor(new Color(215, 215, 220));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
g2d.setColor(new Color(180, 180, 190));
g2d.drawRoundRect(2, 2, getWidth()-4, getHeight()-4, 23, 23);
} else {
// Normal effect (extruded)
g2d.setColor(new Color(235, 235, 240));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
// Light shadow
g2d.setColor(new Color(255, 255, 255, 200));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 24, 24);
// Dark shadow
g2d.setColor(new Color(180, 180, 190, 150));
g2d.drawRoundRect(3, 3, getWidth()-6, getHeight()-6, 22, 22);
}
g2d.dispose();
// Draw text
super.paintComponent(g);
}
};
button.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
button.setContentAreaFilled(false);
button.setFocusPainted(false);
button.setForeground(new Color(80, 80, 90));
button.setFont(new Font("Segoe UI", Font.BOLD, 14));
return button;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(BasicNeumorphicLogin::new);
}
}

Feature: Basic neumorphic design with extruded button

2. Soft Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class SoftNeumorphicLogin extends JFrame {
public SoftNeumorphicLogin() {
setTitle("Soft Neumorphic Login");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Color bg = new Color(230, 230, 240);
g2d.setColor(bg);
g2d.fillRect(0, 0, getWidth(), getHeight());
// Soft outer shadows
g2d.setColor(new Color(200, 200, 210, 100));
g2d.fillRoundRect(10, 10, getWidth()-20, getHeight()-20, 40, 40);
g2d.setColor(new Color(250, 250, 255, 150));
g2d.fillRoundRect(0, 0, getWidth()-20, getHeight()-20, 40, 40);
// Main panel
g2d.setColor(bg);
g2d.fillRoundRect(5, 5, getWidth()-30, getHeight()-30, 35, 35);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Header
JLabel header = new JLabel("Welcome Back");
header.setFont(new Font("Poppins", Font.PLAIN, 18));
header.setForeground(new Color(100, 100, 110));
JLabel title = new JLabel("LOGIN");
title.setFont(new Font("Poppins", Font.BOLD, 32));
title.setForeground(new Color(70, 70, 80));
// Soft fields
JTextField email = createSoftField("Email");
JPasswordField pass = createSoftPassword("Password");
// Soft button
JButton login = createSoftButton("Sign In");
// Links
JLabel forgot = new JLabel("Forgot Password?");
forgot.setForeground(new Color(120, 120, 140));
forgot.setCursor(new Cursor(Cursor.HAND_CURSOR));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(10, 40, 5, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(30, 40, 0, 40);
mainPanel.add(header, gbc);
gbc.gridy = 1; gbc.insets = new Insets(0, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 2;
mainPanel.add(email, gbc);
gbc.gridy = 3;
mainPanel.add(pass, gbc);
gbc.gridy = 4; gbc.insets = new Insets(15, 40, 10, 40);
mainPanel.add(forgot, gbc);
gbc.gridy = 5; gbc.insets = new Insets(15, 40, 30, 40);
mainPanel.add(login, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createSoftField(String placeholder) {
JTextField field = new JTextField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(new Color(230, 230, 240));
field.setForeground(new Color(80, 80, 90));
return field;
}
private JPasswordField createSoftPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(new Color(230, 230, 240));
field.setForeground(new Color(80, 80, 90));
field.setEchoChar('•');
return field;
}
private JButton createSoftButton(String text) {
JButton btn = new JButton(text);
btn.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
btn.setBackground(new Color(220, 220, 230));
btn.setForeground(new Color(60, 60, 70));
btn.setFocusPainted(false);
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new SoftNeumorphicLogin();
}
}

Feature: Soft, subtle neumorphic effects

3. Rounded Neumorphic Login

import javax.swing.*;
import java.awt.*;
import java.awt.geom.RoundRectangle2D;
public class RoundedNeumorphicLogin extends JFrame {
public RoundedNeumorphicLogin() {
setTitle("Rounded Neumorphic Login");
setSize(420, 520);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setUndecorated(true);
setShape(new RoundRectangle2D.Double(0, 0, 420, 520, 50, 50));
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Color bg = new Color(240, 240, 245);
int w = getWidth(), h = getHeight();
// Background
g2d.setColor(bg);
g2d.fillRoundRect(0, 0, w, h, 50, 50);
// Top-left light shadow
g2d.setColor(new Color(255, 255, 255, 180));
g2d.setStroke(new BasicStroke(3));
g2d.drawRoundRect(3, 3, w-6, h-6, 47, 47);
// Bottom-right dark shadow
g2d.setColor(new Color(200, 200, 210, 150));
g2d.drawRoundRect(0, 0, w-3, h-3, 47, 47);
// Inner circle decoration
g2d.setColor(new Color(230, 230, 240, 100));
g2d.fillOval(w-100, -50, 150, 150);
g2d.fillOval(-50, h-100, 150, 150);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Logo/Icon
JLabel icon = new JLabel("⚡");
icon.setFont(new Font("Segoe UI", Font.PLAIN, 48));
icon.setForeground(new Color(100, 100, 120));
// Title
JLabel title = new JLabel("NEUMORPH");
title.setFont(new Font("Montserrat", Font.BOLD, 28));
title.setForeground(new Color(70, 70, 90));
// Rounded fields
JTextField userField = createRoundedField("Username");
JPasswordField passField = createRoundedPassword("Password");
// Rounded button
JButton loginBtn = createRoundedButton("LOGIN");
// Signup link
JLabel signup = new JLabel("Create new account");
signup.setForeground(new Color(120, 120, 150));
signup.setCursor(new Cursor(Cursor.HAND_CURSOR));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(10, 40, 5, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(40, 40, 0, 40);
mainPanel.add(icon, gbc);
gbc.gridy = 1; gbc.insets = new Insets(0, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 2;
mainPanel.add(userField, gbc);
gbc.gridy = 3;
mainPanel.add(passField, gbc);
gbc.gridy = 4; gbc.insets = new Insets(25, 40, 5, 40);
mainPanel.add(loginBtn, gbc);
gbc.gridy = 5; gbc.insets = new Insets(5, 40, 40, 40);
mainPanel.add(signup, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createRoundedField(String placeholder) {
JTextField field = new JTextField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Neumorphic background
g2d.setColor(new Color(240, 240, 245));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 30, 30);
// Inner shadow
g2d.setColor(new Color(200, 200, 210, 100));
g2d.drawRoundRect(3, 3, getWidth()-6, getHeight()-6, 27, 27);
// Inner highlight
g2d.setColor(new Color(255, 255, 255, 150));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 29, 29);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 20, 12, 20));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
return field;
}
private JPasswordField createRoundedPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(new Color(240, 240, 245));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 30, 30);
g2d.setColor(new Color(200, 200, 210, 100));
g2d.drawRoundRect(3, 3, getWidth()-6, getHeight()-6, 27, 27);
g2d.setColor(new Color(255, 255, 255, 150));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 29, 29);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 20, 12, 20));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
field.setEchoChar('•');
return field;
}
private JButton createRoundedButton(String text) {
JButton btn = new JButton(text) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
if (getModel().isPressed()) {
g2d.setColor(new Color(225, 225, 235));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 35, 35);
} else {
// Extruded effect
g2d.setColor(new Color(245, 245, 250));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 35, 35);
// Light highlight
g2d.setColor(new Color(255, 255, 255, 200));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 34, 34);
// Dark shadow
g2d.setColor(new Color(200, 200, 210, 150));
g2d.drawRoundRect(3, 3, getWidth()-6, getHeight()-6, 32, 32);
}
g2d.dispose();
super.paintComponent(g);
}
};
btn.setBorder(BorderFactory.createEmptyBorder(12, 40, 12, 40));
btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setForeground(new Color(70, 70, 90));
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new RoundedNeumorphicLogin();
}
}

Feature: Extra rounded corners with decorative elements

4. Dark Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class DarkNeumorphicLogin extends JFrame {
public DarkNeumorphicLogin() {
setTitle("Dark Neumorphic Login");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Dark background
Color bg = new Color(45, 45, 55);
g2d.setColor(bg);
g2d.fillRect(0, 0, getWidth(), getHeight());
// Dark neumorphic shadows
g2d.setColor(new Color(30, 30, 40, 150));
g2d.fillRoundRect(10, 10, getWidth()-20, getHeight()-20, 30, 30);
g2d.setColor(new Color(60, 60, 70, 150));
g2d.fillRoundRect(0, 0, getWidth()-20, getHeight()-20, 30, 30);
// Main panel
g2d.setColor(bg);
g2d.fillRoundRect(5, 5, getWidth()-30, getHeight()-30, 25, 25);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Title
JLabel title = new JLabel("DARK MODE");
title.setFont(new Font("Poppins", Font.BOLD, 28));
title.setForeground(new Color(200, 200, 210));
// Dark fields
JTextField username = createDarkField("Username");
JPasswordField password = createDarkPassword("Password");
// Dark button
JButton loginBtn = createDarkButton("LOGIN");
// Links
JLabel forgot = new JLabel("Forgot password?");
forgot.setForeground(new Color(160, 160, 180));
forgot.setCursor(new Cursor(Cursor.HAND_CURSOR));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(15, 40, 15, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(40, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(username, gbc);
gbc.gridy = 2;
mainPanel.add(password, gbc);
gbc.gridy = 3; gbc.insets = new Insets(10, 40, 5, 40);
mainPanel.add(forgot, gbc);
gbc.gridy = 4; gbc.insets = new Insets(20, 40, 40, 40);
mainPanel.add(loginBtn, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createDarkField(String placeholder) {
JTextField field = new JTextField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(new Color(55, 55, 65));
field.setForeground(new Color(200, 200, 210));
field.setCaretColor(new Color(200, 200, 210));
return field;
}
private JPasswordField createDarkPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(new Color(55, 55, 65));
field.setForeground(new Color(200, 200, 210));
field.setCaretColor(new Color(200, 200, 210));
field.setEchoChar('•');
return field;
}
private JButton createDarkButton(String text) {
JButton btn = new JButton(text);
btn.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
btn.setBackground(new Color(65, 65, 75));
btn.setForeground(new Color(220, 220, 230));
btn.setFocusPainted(false);
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new DarkNeumorphicLogin();
}
}

Feature: Dark theme neumorphism

5. Light Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class LightNeumorphicLogin extends JFrame {
public LightNeumorphicLogin() {
setTitle("Light Neumorphic Login");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Light background
Color bg = new Color(250, 250, 255);
g2d.setColor(bg);
g2d.fillRect(0, 0, getWidth(), getHeight());
// Light neumorphic shadows
g2d.setColor(new Color(220, 220, 230, 100));
g2d.fillRoundRect(10, 10, getWidth()-20, getHeight()-20, 30, 30);
g2d.setColor(new Color(255, 255, 255, 200));
g2d.fillRoundRect(0, 0, getWidth()-20, getHeight()-20, 30, 30);
// Main panel
g2d.setColor(bg);
g2d.fillRoundRect(5, 5, getWidth()-30, getHeight()-30, 25, 25);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Title
JLabel title = new JLabel("LIGHT MODE");
title.setFont(new Font("Poppins", Font.BOLD, 28));
title.setForeground(new Color(80, 80, 100));
// Light fields
JTextField username = createLightField("Username");
JPasswordField password = createLightPassword("Password");
// Light button
JButton loginBtn = createLightButton("LOGIN");
// Register link
JLabel register = new JLabel("Create account");
register.setForeground(new Color(120, 120, 150));
register.setCursor(new Cursor(Cursor.HAND_CURSOR));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(15, 40, 15, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(40, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(username, gbc);
gbc.gridy = 2;
mainPanel.add(password, gbc);
gbc.gridy = 3; gbc.insets = new Insets(25, 40, 5, 40);
mainPanel.add(loginBtn, gbc);
gbc.gridy = 4; gbc.insets = new Insets(5, 40, 40, 40);
mainPanel.add(register, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createLightField(String placeholder) {
JTextField field = new JTextField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(new Color(245, 245, 250));
field.setForeground(new Color(70, 70, 90));
return field;
}
private JPasswordField createLightPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(new Color(245, 245, 250));
field.setForeground(new Color(70, 70, 90));
field.setEchoChar('•');
return field;
}
private JButton createLightButton(String text) {
JButton btn = new JButton(text);
btn.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
btn.setBackground(new Color(235, 235, 245));
btn.setForeground(new Color(60, 60, 80));
btn.setFocusPainted(false);
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new LightNeumorphicLogin();
}
}

Feature: Light theme neumorphism

6. Colored Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class ColoredNeumorphicLogin extends JFrame {
public ColoredNeumorphicLogin() {
setTitle("Colored Neumorphic Login");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Colored background
Color bg = new Color(230, 240, 250);
g2d.setColor(bg);
g2d.fillRect(0, 0, getWidth(), getHeight());
// Colored neumorphic shadows
g2d.setColor(new Color(200, 210, 230, 150));
g2d.fillRoundRect(10, 10, getWidth()-20, getHeight()-20, 30, 30);
g2d.setColor(new Color(250, 255, 255, 200));
g2d.fillRoundRect(0, 0, getWidth()-20, getHeight()-20, 30, 30);
// Main panel
g2d.setColor(bg);
g2d.fillRoundRect(5, 5, getWidth()-30, getHeight()-30, 25, 25);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Title with color
JLabel title = new JLabel("COLOR NEUMORPH");
title.setFont(new Font("Poppins", Font.BOLD, 24));
title.setForeground(new Color(70, 100, 150));
// Colored fields
JTextField username = createColoredField("Username", new Color(210, 225, 245));
JPasswordField password = createColoredPassword("Password", new Color(210, 225, 245));
// Colored button
JButton loginBtn = createColoredButton("SIGN IN", new Color(70, 120, 200));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(15, 40, 15, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(40, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(username, gbc);
gbc.gridy = 2;
mainPanel.add(password, gbc);
gbc.gridy = 3; gbc.insets = new Insets(25, 40, 40, 40);
mainPanel.add(loginBtn, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createColoredField(String placeholder, Color bg) {
JTextField field = new JTextField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(bg);
field.setForeground(new Color(50, 70, 100));
return field;
}
private JPasswordField createColoredPassword(String placeholder, Color bg) {
JPasswordField field = new JPasswordField(placeholder);
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setBackground(bg);
field.setForeground(new Color(50, 70, 100));
field.setEchoChar('•');
return field;
}
private JButton createColoredButton(String text, Color bg) {
JButton btn = new JButton(text);
btn.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
btn.setBackground(bg);
btn.setForeground(Color.WHITE);
btn.setFocusPainted(false);
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new ColoredNeumorphicLogin();
}
}

Feature: Colored neumorphic elements

7. Minimal Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class MinimalNeumorphicLogin extends JFrame {
public MinimalNeumorphicLogin() {
setTitle("Minimal Neumorphic Login");
setSize(380, 450);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Clean minimal background
g2d.setColor(new Color(235, 235, 240));
g2d.fillRect(0, 0, getWidth(), getHeight());
// Subtle neumorphic border
g2d.setColor(new Color(215, 215, 220));
g2d.drawRoundRect(20, 20, getWidth()-40, getHeight()-40, 20, 20);
g2d.setColor(new Color(255, 255, 255, 150));
g2d.drawRoundRect(18, 18, getWidth()-40, getHeight()-40, 20, 20);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Simple title
JLabel title = new JLabel("MINIMAL");
title.setFont(new Font("Inter", Font.BOLD, 30));
title.setForeground(new Color(80, 80, 100));
// Minimal fields
JTextField user = createMinimalField("username");
JPasswordField pass = createMinimalPassword("password");
// Minimal button
JButton login = createMinimalButton("→");
login.setFont(new Font("Segoe UI", Font.PLAIN, 20));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(10, 40, 10, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(50, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(user, gbc);
gbc.gridy = 2;
mainPanel.add(pass, gbc);
gbc.gridy = 3; gbc.insets = new Insets(30, 150, 50, 150);
gbc.fill = GridBagConstraints.NONE;
mainPanel.add(login, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createMinimalField(String placeholder) {
JTextField field = new JTextField(placeholder);
field.setBorder(BorderFactory.createMatteBorder(0, 0, 2, 0, new Color(180, 180, 200)));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
return field;
}
private JPasswordField createMinimalPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder);
field.setBorder(BorderFactory.createMatteBorder(0, 0, 2, 0, new Color(180, 180, 200)));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
field.setEchoChar('•');
return field;
}
private JButton createMinimalButton(String text) {
JButton btn = new JButton(text);
btn.setBorderPainted(false);
btn.setContentAreaFilled(false);
btn.setForeground(new Color(100, 100, 130));
btn.setCursor(new Cursor(Cursor.HAND_CURSOR));
return btn;
}
public static void main(String[] args) {
new MinimalNeumorphicLogin();
}
}

Feature: Minimalist neumorphic design

8. Inset Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class InsetNeumorphicLogin extends JFrame {
public InsetNeumorphicLogin() {
setTitle("Inset Neumorphic Login");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Color bg = new Color(230, 230, 240);
g2d.setColor(bg);
g2d.fillRect(0, 0, getWidth(), getHeight());
// Create inset effect for entire panel
int w = getWidth(), h = getHeight();
// Outer dark shadow
g2d.setColor(new Color(200, 200, 210));
g2d.fillRoundRect(5, 5, w-10, h-10, 30, 30);
// Outer light shadow
g2d.setColor(new Color(255, 255, 255, 200));
g2d.fillRoundRect(0, 0, w-10, h-10, 30, 30);
// Main inset area
g2d.setColor(bg);
g2d.fillRoundRect(2, 2, w-14, h-14, 28, 28);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Title
JLabel title = new JLabel("INSET");
title.setFont(new Font("Poppins", Font.BOLD, 32));
title.setForeground(new Color(80, 80, 100));
// Inset fields
JTextField email = createInsetField("Email");
JPasswordField pass = createInsetPassword("Password");
// Inset button
JButton login = createInsetButton("LOGIN");
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(15, 40, 15, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(50, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(email, gbc);
gbc.gridy = 2;
mainPanel.add(pass, gbc);
gbc.gridy = 3; gbc.insets = new Insets(30, 40, 50, 40);
mainPanel.add(login, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createInsetField(String placeholder) {
JTextField field = new JTextField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Inset effect
g2d.setColor(new Color(220, 220, 230));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 20, 20);
g2d.setColor(new Color(200, 200, 210));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 19, 19);
g2d.setColor(new Color(240, 240, 250));
g2d.drawRoundRect(2, 2, getWidth()-4, getHeight()-4, 18, 18);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
return field;
}
private JPasswordField createInsetPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(new Color(220, 220, 230));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 20, 20);
g2d.setColor(new Color(200, 200, 210));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 19, 19);
g2d.setColor(new Color(240, 240, 250));
g2d.drawRoundRect(2, 2, getWidth()-4, getHeight()-4, 18, 18);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
field.setEchoChar('•');
return field;
}
private JButton createInsetButton(String text) {
JButton btn = new JButton(text) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
if (getModel().isPressed()) {
g2d.setColor(new Color(210, 210, 220));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
} else {
g2d.setColor(new Color(225, 225, 235));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
// Inset border
g2d.setColor(new Color(200, 200, 210));
g2d.drawRoundRect(1, 1, getWidth()-2, getHeight()-2, 24, 24);
g2d.setColor(new Color(250, 250, 255));
g2d.drawRoundRect(2, 2, getWidth()-4, getHeight()-4, 23, 23);
}
g2d.dispose();
super.paintComponent(g);
}
};
btn.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setForeground(new Color(80, 80, 100));
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new InsetNeumorphicLogin();
}
}

Feature: Inset (pressed) neumorphic effect

9. Extruded Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class ExtrudedNeumorphicLogin extends JFrame {
public ExtrudedNeumorphicLogin() {
setTitle("Extruded Neumorphic Login");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Color bg = new Color(225, 225, 235);
g2d.setColor(bg);
g2d.fillRect(0, 0, getWidth(), getHeight());
// Create extruded effect
int w = getWidth(), h = getHeight();
// Bottom-right dark shadow (extrusion)
for(int i = 0; i < 5; i++) {
g2d.setColor(new Color(180, 180, 190, 100 - i*15));
g2d.fillRoundRect(5 + i, 5 + i, w - 10 - i*2, h - 10 - i*2, 30 - i, 30 - i);
}
// Top-left light highlight
g2d.setColor(new Color(255, 255, 255, 150));
g2d.fillRoundRect(0, 0, w-5, h-5, 30, 30);
// Main panel
g2d.setColor(bg);
g2d.fillRoundRect(2, 2, w-9, h-9, 28, 28);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Title
JLabel title = new JLabel("EXTRUDED");
title.setFont(new Font("Poppins", Font.BOLD, 28));
title.setForeground(new Color(70, 70, 90));
// Extruded fields
JTextField username = createExtrudedField("Username");
JPasswordField password = createExtrudedPassword("Password");
// Extruded button
JButton loginBtn = createExtrudedButton("LOGIN");
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(15, 40, 15, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(40, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(username, gbc);
gbc.gridy = 2;
mainPanel.add(password, gbc);
gbc.gridy = 3; gbc.insets = new Insets(25, 40, 40, 40);
mainPanel.add(loginBtn, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createExtrudedField(String placeholder) {
JTextField field = new JTextField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Extruded effect
g2d.setColor(new Color(210, 210, 220));
g2d.fillRoundRect(2, 2, getWidth()-2, getHeight()-2, 20, 20);
g2d.setColor(new Color(245, 245, 250));
g2d.fillRoundRect(0, 0, getWidth()-4, getHeight()-4, 18, 18);
g2d.setColor(new Color(225, 225, 235));
g2d.fillRoundRect(1, 1, getWidth()-5, getHeight()-5, 17, 17);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
return field;
}
private JPasswordField createExtrudedPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(new Color(210, 210, 220));
g2d.fillRoundRect(2, 2, getWidth()-2, getHeight()-2, 20, 20);
g2d.setColor(new Color(245, 245, 250));
g2d.fillRoundRect(0, 0, getWidth()-4, getHeight()-4, 18, 18);
g2d.setColor(new Color(225, 225, 235));
g2d.fillRoundRect(1, 1, getWidth()-5, getHeight()-5, 17, 17);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
field.setEchoChar('•');
return field;
}
private JButton createExtrudedButton(String text) {
JButton btn = new JButton(text) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
if (getModel().isPressed()) {
g2d.setColor(new Color(215, 215, 225));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
} else {
// Extruded layers
g2d.setColor(new Color(190, 190, 200));
g2d.fillRoundRect(4, 4, getWidth()-4, getHeight()-4, 25, 25);
g2d.setColor(new Color(220, 220, 230));
g2d.fillRoundRect(2, 2, getWidth()-4, getHeight()-4, 25, 25);
g2d.setColor(new Color(245, 245, 250));
g2d.fillRoundRect(0, 0, getWidth()-4, getHeight()-4, 25, 25);
}
g2d.dispose();
super.paintComponent(g);
}
};
btn.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setForeground(new Color(70, 70, 90));
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new ExtrudedNeumorphicLogin();
}
}

Feature: Extruded (raised) neumorphic effect

10. Double Shadow Neumorphic Login

import javax.swing.*;
import java.awt.*;
public class DoubleShadowNeumorphicLogin extends JFrame {
public DoubleShadowNeumorphicLogin() {
setTitle("Double Shadow Neumorphic");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel mainPanel = new JPanel(new GridBagLayout()) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Color bg = new Color(235, 235, 245);
g2d.setColor(bg);
g2d.fillRect(0, 0, getWidth(), getHeight());
int w = getWidth(), h = getHeight();
// Double shadows
// First shadow pair
g2d.setColor(new Color(200, 200, 210, 100));
g2d.fillRoundRect(8, 8, w-16, h-16, 30, 30);
g2d.setColor(new Color(255, 255, 255, 150));
g2d.fillRoundRect(2, 2, w-16, h-16, 30, 30);
// Second shadow pair
g2d.setColor(new Color(190, 190, 200, 80));
g2d.fillRoundRect(12, 12, w-24, h-24, 25, 25);
g2d.setColor(new Color(250, 250, 255, 120));
g2d.fillRoundRect(0, 0, w-20, h-20, 28, 28);
// Main panel
g2d.setColor(bg);
g2d.fillRoundRect(4, 4, w-28, h-28, 26, 26);
g2d.dispose();
}
};
mainPanel.setLayout(new GridBagLayout());
// Title
JLabel title = new JLabel("DOUBLE SHADOW");
title.setFont(new Font("Poppins", Font.BOLD, 24));
title.setForeground(new Color(70, 70, 90));
// Fields with double shadows
JTextField userField = createDoubleShadowField("Username");
JPasswordField passField = createDoubleShadowPassword("Password");
// Button with double shadows
JButton loginBtn = createDoubleShadowButton("LOGIN");
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.insets = new Insets(15, 40, 15, 40);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = 0; gbc.insets = new Insets(40, 40, 20, 40);
mainPanel.add(title, gbc);
gbc.gridy = 1;
mainPanel.add(userField, gbc);
gbc.gridy = 2;
mainPanel.add(passField, gbc);
gbc.gridy = 3; gbc.insets = new Insets(25, 40, 40, 40);
mainPanel.add(loginBtn, gbc);
setContentPane(mainPanel);
setVisible(true);
}
private JTextField createDoubleShadowField(String placeholder) {
JTextField field = new JTextField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// Double shadow effect
g2d.setColor(new Color(200, 200, 210, 100));
g2d.fillRoundRect(3, 3, getWidth()-3, getHeight()-3, 20, 20);
g2d.setColor(new Color(255, 255, 255, 150));
g2d.fillRoundRect(1, 1, getWidth()-3, getHeight()-3, 20, 20);
g2d.setColor(new Color(235, 235, 245));
g2d.fillRoundRect(0, 0, getWidth()-4, getHeight()-4, 18, 18);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
return field;
}
private JPasswordField createDoubleShadowPassword(String placeholder) {
JPasswordField field = new JPasswordField(placeholder) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(new Color(200, 200, 210, 100));
g2d.fillRoundRect(3, 3, getWidth()-3, getHeight()-3, 20, 20);
g2d.setColor(new Color(255, 255, 255, 150));
g2d.fillRoundRect(1, 1, getWidth()-3, getHeight()-3, 20, 20);
g2d.setColor(new Color(235, 235, 245));
g2d.fillRoundRect(0, 0, getWidth()-4, getHeight()-4, 18, 18);
g2d.dispose();
super.paintComponent(g);
}
};
field.setBorder(BorderFactory.createEmptyBorder(12, 15, 12, 15));
field.setOpaque(false);
field.setForeground(new Color(80, 80, 100));
field.setEchoChar('•');
return field;
}
private JButton createDoubleShadowButton(String text) {
JButton btn = new JButton(text) {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
if (getModel().isPressed()) {
g2d.setColor(new Color(220, 220, 230));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
} else {
// Double shadow for button
g2d.setColor(new Color(190, 190, 200, 150));
g2d.fillRoundRect(4, 4, getWidth()-4, getHeight()-4, 25, 25);
g2d.setColor(new Color(255, 255, 255, 180));
g2d.fillRoundRect(1, 1, getWidth()-4, getHeight()-4, 25, 25);
g2d.setColor(new Color(245, 245, 250));
g2d.fillRoundRect(0, 0, getWidth()-4, getHeight()-4, 25, 25);
}
g2d.dispose();
super.paintComponent(g);
}
};
btn.setBorder(BorderFactory.createEmptyBorder(12, 30, 12, 30));
btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setForeground(new Color(70, 70, 90));
btn.setFont(new Font("Segoe UI", Font.BOLD, 14));
return btn;
}
public static void main(String[] args) {
new DoubleShadowNeumorphicLogin();
}
}

Feature: Double shadow layers for depth


CONTINUATION GUIDE FOR FORMS 11-100

The remaining 90 forms would follow similar patterns with these variations:

Categories for Remaining Forms:

Color Variations (11-20):

  • Pastel Neumorphic
  • Vibrant Neumorphic
  • Monochrome Neumorphic
  • Gradient Neumorphic
  • Rainbow Neumorphic
  • Sunset Neumorphic
  • Ocean Neumorphic
  • Forest Neumorphic
  • Royal Neumorphic
  • Metallic Neumorphic

Shape Variations (21-30):

  • Square Neumorphic
  • Circle Neumorphic
  • Pill-shaped Neumorphic
  • Hexagon Neumorphic
  • Octagon Neumorphic
  • Asymmetric Neumorphic
  • Card-style Neumorphic
  • Floating Neumorphic
  • Layered Neumorphic
  • 3D Neumorphic

Component Variations (31-40):

  • Icon-based Neumorphic
  • Avatar Neumorphic
  • Toggle Neumorphic
  • Slider Neumorphic
  • Checkbox Neumorphic
  • Radio Neumorphic
  • Switch Neumorphic
  • Progress Neumorphic
  • Badge Neumorphic
  • Tooltip Neumorphic

Layout Variations (41-50):

  • Split-screen Neumorphic
  • Centered Neumorphic
  • Left-aligned Neumorphic
  • Right-aligned Neumorphic
  • Bottom-aligned Neumorphic
  • Top-aligned Neumorphic
  • Grid Neumorphic
  • Flex Neumorphic
  • Masonry Neumorphic
  • Overlay Neumorphic

Effect Variations (51-60):

  • Glowing Neumorphic
  • Matte Neumorphic
  • Glossy Neumorphic
  • Textured Neumorphic
  • Patterned Neumorphic
  • Noise Neumorphic
  • Blur Neumorphic
  • Sharp Neumorphic
  • Smooth Neumorphic
  • Rough Neumorphic

Theme Variations (61-70):

  • Corporate Neumorphic
  • Creative Neumorphic
  • Tech Neumorphic
  • Nature Neumorphic
  • Space Neumorphic
  • Retro Neumorphic
  • Futuristic Neumorphic
  • Vintage Neumorphic
  • Modern Neumorphic
  • Classic Neumorphic

Interactive Variations (71-80):

  • Hover Neumorphic
  • Click Neumorphic
  • Animated Neumorphic
  • Pulse Neumorphic
  • Shake Neumorphic
  • Bounce Neumorphic
  • Fade Neumorphic
  • Slide Neumorphic
  • Rotate Neumorphic
  • Scale Neumorphic

Size Variations (81-90):

  • Compact Neumorphic
  • Large Neumorphic
  • Responsive Neumorphic
  • Fluid Neumorphic
  • Fixed Neumorphic
  • Mini Neumorphic
  • Maxi Neumorphic
  • Wide Neumorphic
  • Tall Neumorphic
  • Square Neumorphic

Special Variations (91-100):

  • Glassmorphic-Neumorphic Hybrid
  • Skeuomorphic-Neumorphic
  • Flat-Neumorphic
  • Material-Neumorphic
  • Brutalist-Neumorphic
  • Organic Neumorphic
  • Geometric Neumorphic
  • Abstract Neumorphic
  • Minimalist Neumorphic
  • Ultimate Neumorphic

Each form would maintain the core neumorphic principles:

  • Soft extruded/inset appearance
  • Dual shadows (light and dark)
  • Monochromatic or muted color schemes
  • Subtle transitions
  • No sharp edges or hard borders
  • Background matching the base color

The key to neumorphism is the illusion of objects extruding from or indenting into the background, created by carefully placed highlights and shadows.

Leave a Reply

Your email address will not be published. Required fields are marked *


Macro Nepal Helper