Newed UI - Component Library

NWD Password Input (Strength Meter) v1.1.0

NWD Password Input (Strength Meter) is the password field Bubble was always missing. Built to replace the native password input, it brings a live strength meter, configurable password policies, and a show/hide toggle together in one polished component. Fully customizable through 60+ properties, giving you complete control over every visual and behavioral detail.

No data collected This plugin does not collect user data.

Key features 6

Password Policy You Define

Minimum and maximum length, lowercase, uppercase, number and special character, each one switched on or off independently. The rule list updates as the user types, and the policy can drive the field's validity or stay purely informative.

Live Strength Meter

Five levels, from Very weak to Very strong, each with its own label and color. The score comes from the password itself, independently of the rules you required, so neither measure hides the other.

Visibility Toggle

An optional eye icon lets the user reveal what they typed, reachable by keyboard and announced as Show or Hide password, with the icon, size and color under your control.

Complete Styling Control

Over 60 properties covering the input, the visibility toggle, the floating rule panel and the strength meter, with panel animations, glass effects and every visual state under your control.

Accessible Experience

An accessible label and description read by screen readers, the strength level announced as the user types, and reduced motion respected.

Workflow Ready

Read the password, its strength and which rules are still pending from exposed states, set it or clear it from any workflow with Set value and Reset, and react to value changed.

In detail

Smart Password Rules

  • Live strength meter with multiple levels, each with its own label and color
  • Configurable policies, such as minimum and maximum length, letter case, numbers, and special characters
  • Policy checklist that updates as the user types
  • Choose whether pending policies make the input invalid

Fully Customizable

  • 60+ properties for complete visual and behavioral control
  • Show/hide password toggle with custom icon styles
  • Input icon library with filled and outline versions
  • Floating panel with display modes, animation types, and modern glass effects
  • Seamless integration with native Bubble styles while preserving a consistent appearance across browsers and matching your app design

Smooth User Experience

  • Smooth animation types with smart directional positioning that adapts beautifully to any screen
  • Browser autocomplete support for new and current passwords
  • Handles required and invalid states with customizable styling that integrates with Bubble styles
  • Screen reader ready, with an accessible label and description, and reduced motion support

Workflow Friendly

  • Exposed states for the value, strength percent and label, and active, completed, and pending policies
  • Required field validation with touch-aware invalid state
  • Focus action that can be triggered from anywhere for full workflow control
  • Reset action with flexible behavior that integrates with native Bubble actions or custom workflows
  • Set value action that can be triggered from anywhere, for writing a password your app generated to satisfy your policy, with control over how it behaves when the input is disabled
  • Value changed event for seamless Bubble integration

Reliable & Production-Ready

  • Built with lightweight CSS and JavaScript for fast, reliable performance
  • Designed around practical use cases and real Bubble development needs
  • Tested in real-world applications before being released publicly
  • Created to extend Bubble with functionality and customization beyond what native Bubble elements typically offer

How to use 6

  1. 01
    Insert the element on the page

    Place NWD Password Input wherever the password should be typed. It behaves like a native input: size it and position it with Bubble's own layout.

  2. 02
    Set the password policy

    In PASSWORD POLICY > # Rules, switch on the requirements you want and set Minimum length. Leave Maximum length at 0 for no upper limit.

    Pending policies make the input invalid? decides whether an unmet rule makes the field invalid, or whether the list is only guidance. Turn it off when the policy is advisory and your own workflow decides what to accept.

  3. 03
    Write the rule labels

    Each rule has its own label in # Labels. The `{n}` in the length labels is replaced by the number you set, so "At least {n} characters" reads "At least 8 characters" to the user.

  4. 04
    Choose where the rules appear

    In FLOATING PANEL, pick when the panel opens: on focus, on focus until every rule is met, or never. Then pick where it opens. The automatic positions flip the panel when there is no room below.

  5. 05
    Tune the strength meter

    STRENGTH METER has one label and one color per level. The five bands are fixed at 0-20, 21-40, 41-60, 61-80 and 81-100 percent, and the plugin picks the band from the typed password.

  6. 06
    Read the result in your workflows

    Use the exposed states to drive the rest of the page: value for the password itself, is valid to enable a submit button, and strength percent or strength label to show your own feedback elsewhere.

INPUT 11

The password policy and the strength meter are independent measures. A password can satisfy every rule you required and still score low on strength, or score high and fail a rule. Use Pending policies make the input invalid? to decide which of the two gates your form.

General

Input placeholder

text

Text displayed in the input while it has no value.

defaultEnter your password...

optional

Input placeholder color

color

Color of the placeholder text.

default#AAAAAA

Browser autocomplete

dropdown

Tells the browser whether to suggest a new password or fill a saved one.

  • new-passwordtells the browser this is a password being created, so it offers to generate one instead of filling the saved one. Use it in sign-up and change-password forms.
  • current-passwordtells the browser this is an existing password, so the password manager offers to fill it. Use it in sign-in forms.
  • offasks the browser not to interfere. Browsers do not always honor it, and turning autocomplete off on a password field is usually worse for the user than leaving it on.

defaultnew-password

Input icon

Display input icon?

yes/no

Controls whether the input icon is displayed.

defaultno

Input icon class

dropdown

Icon displayed in the input.

  • locka filled padlock.
  • lock outlinea padlock drawn in outline.
  • keya filled key.
  • key outlinea key drawn in outline.
  • shielda filled shield.
  • shield outlinea shield drawn in outline.
  • shield checka filled shield with a check inside.
  • shield check outlinethe same shield and check, in outline.

defaultlock outline

Input icon size

number

Icon size in pixels. When empty, it is calculated from the input font size.

defaultno default

optional

Input icon color

color

Color of the input icon.

default#AAAAAA

Visibility toggle

Display visibility toggle?

yes/no

Shows the eye icon that reveals or hides the password.

defaultyes

Visibility toggle icon class

dropdown

Eye icon style. Each style has an open and a crossed-out version.

  • eye outlinean eye drawn in outline.
  • eye thinthe same eye with a thinner stroke.
  • eye bolda heavier stroke, for small sizes or low contrast.
  • eye filleda solid eye.

defaulteye outline

Visibility toggle icon size

number

Eye icon size in pixels. When empty, it is calculated from the font size.

defaultno default

optional

Visibility toggle icon color

color

Eye icon color.

default#AAAAAA

PASSWORD POLICY 18

Rules

Minimum length (0 = off)

number

Minimum number of characters. Use 0 to disable this policy.

default8

Maximum length (0 = off)

number

Maximum number of characters. Use 0 to disable this policy.

default0

Require lowercase letter?

yes/no

Requires at least one lowercase letter.

defaultyes

Require uppercase letter?

yes/no

Requires at least one uppercase letter.

defaultyes

Require number?

yes/no

Requires at least one number.

defaultyes

Require special character?

yes/no

Requires at least one special character (any character that is not a letter, number or space).

defaultyes

Pending policies make the input invalid?

yes/no

When enabled, a filled password is only valid when all active policies are met.

defaultyes

Labels

Policy title

text

Title shown above the policy list.

defaultPassword must contain:

optional

Minimum length label

text

Minimum length policy label. {n} is replaced by the minimum length.

defaultAt least {n} characters

optional

Maximum length label

text

Maximum length policy label. {n} is replaced by the maximum length.

defaultUp to {n} characters

optional

Lowercase label

text

Lowercase policy label.

defaultOne lowercase letter (a-z)

optional

Uppercase label

text

Uppercase policy label.

defaultOne uppercase letter (A-Z)

optional

Number label

text

Number policy label.

defaultOne number (0-9)

optional

Special character label

text

Special character policy label.

defaultOne special character (! @ # ...)

optional

Appearance

Policy title font color

color

Policy title color. When empty, uses the element font color.

defaultno default

optional

Policy icon class

dropdown

Icon pair used for completed and pending policies.

  • check / circlea check for the rules already met, an empty circle for the ones still pending.
  • check circle / circlea check inside a circle for met rules, an empty circle for pending ones.
  • check / xa check for met and an x for pending. States the failure instead of leaving it open, which reads harsher while the user is still typing.
  • check / dota check for met and a dot for pending, the quietest of the four.

defaultcheck / circle

Pending policy color

color

Icon and text color of pending policies.

default#AAAAAA

Completed policy color

color

Icon and text color of completed policies.

default#2EB872

FLOATING PANEL 6

General

Panel display mode

dropdown

Defines when the strength and policy panel is shown.

  • on focusthe rule panel opens when the field receives focus and closes when it loses focus.
  • on focus until validthe same, except the panel stops opening once the password satisfies every active rule. Useful when the list has served its purpose and would only add noise.
  • neverthe panel never opens. Use it when you show the rules yourself, from the exposed states.

defaulton focus

Panel position

dropdown

Preferred or forced opening direction of the floating panel relative to the input.

  • auto-topopens above the field, and flips below when there is no room.
  • auto-bottomopens below the field, and flips above when there is no room.
  • topalways above, even when it overflows the visible area.
  • bottomalways below, with the same caveat.

defaultauto-bottom

Animation type

dropdown

Opening animation of the floating panel.

  • nonethe panel appears with no animation.
  • dropfalls into place from above.
  • elasticovershoots slightly and settles.
  • expandgrows from the field's edge.
  • fadefades in, the quietest option.
  • popscales up quickly from the center.
  • slideslides in from the field's side.
  • zoomscales from small to full size.

defaultfade

Appearance

Panel bg color

color

Background color of the floating panel.

default#FFFFFF

Panel border color

color

Border color of the floating panel.

default#DEDEDE

Glass effect

dropdown

Intensity of the glassmorphism effect on the floating panel.

  • nonea solid background, using the panel color as it is.
  • subtlea barely perceptible blur of what is behind.
  • lighta light blur.
  • mediuma moderate blur, the usual choice when the page behind has imagery.
  • stronga heavy blur.
  • intensethe heaviest blur, where almost nothing behind stays readable.

defaultnone

STRENGTH METER 14

General

Display strength meter?

yes/no

Shows the strength bar and label in the panel.

defaultyes

Strength title label

text

Title displayed above the strength bar, next to the strength level.

defaultPassword strength

optional

Strength title font color

color

Font color of the strength title.

default#AAAAAA

Strength bar track color

color

Color of the empty bar segments.

default#EEEEEE

Very weak (0-20%)

Very weak label

text

Strength label for 0-20%.

defaultVery weak

optional

Very weak color

color

Strength color for 0-20%.

default#FF6666

Weak (21-40%)

Weak label

text

Strength label for 21-40%.

defaultWeak

optional

Weak color

color

Strength color for 21-40%.

default#FF9F43

Fair (41-60%)

Fair label

text

Strength label for 41-60%.

defaultFair

optional

Fair color

color

Strength color for 41-60%.

default#F5C542

Strong (61-80%)

Strong label

text

Strength label for 61-80%.

defaultStrong

optional

Strong color

color

Strength color for 61-80%.

default#66CC88

Very strong (81-100%)

Very strong label

text

Strength label for 81-100%.

defaultVery strong

optional

Very strong color

color

Strength color for 81-100%.

default#2EB872

INPUT BEHAVIOR 9

Disabled state

This input is disabled?

yes/no

Disables the component, preventing any interaction.

defaultno

Input bg color (disabled)

color

Input background color when disabled.

default#F4F4F4

Input border color (disabled)

color

Input border color when disabled.

default#CACACA

Input font color (disabled)

color

Input font color when disabled.

default#CACACA

This color applies to the password the user typed, not to the placeholder. A disabled field with nothing in it keeps the placeholder color you set in INPUT > # General.

Required state

This input is required?

yes/no

Marks the field as required and enables input validation.

defaultno

Input bg color (invalid)

color

Input background color when invalid (required with no value).

default#FFF8F8

Input border color (invalid)

color

Input border color when invalid (required with no value).

default#FF6666

Focused state

Input bg color (focused)

color

Input background color when focused.

default#FFFFFF

Input border color (focused)

color

Input border color when focused.

default#30B3FE

ACCESSIBILITY 2

Accessible label

text

Name read by screen readers. When empty, uses the placeholder or the visible label.

defaultno default

optional

Accessible description

text

Hint read by screen readers after the name. Empty for none.

defaultno default

optional

States 10

Values the element exposes for the rest of the page to read.

value

text

Current password.

strength (%)

number

Password strength from 0 to 100.

strength (label)

text

Label of the current strength range.

active policies

textlist

Labels of all active password policies.

completed policies

textlist

Labels of the password policies already met.

pending policies

textlist

Labels of the password policies not met yet.

is clickable

yes/no

Whether the input accepts interaction.

is required

yes/no

Whether the input is required.

is valid

yes/no

Whether the value is valid, considering the required state and the active policies.

is focused

yes/no

Whether the input is focused.

Events 1

Where a workflow can start.

value changed

event

Triggered when the password is confirmed with a different value, when leaving the input, pressing Enter or resetting the element.

Actions 3

What a workflow can tell the element to do.

Reset no params

Clears the password, hides it again and resets the touched state.

Focus no params

Focuses the password input.

Set value 2 params

Writes a password into the field from a workflow and refreshes the strength meter, the policy list and the exposed states.

Apply even when disabled?

yes/no

Yes applies the value even while the element is disabled. No makes the action do nothing in that state.

defaultno default

Value

text

The password to write into the field; an empty value clears it. The strength meter, the rule list and the exposed states are all recalculated from it. This exists for the case where your app generates a password that satisfies the policy configured above, which the browser's own generator cannot know. It is not meant for storing a password and writing it back later.

defaultno default

optional

FAQ 6

Does the plugin store or send the password anywhere?

No. Everything happens in the browser: the value, the strength calculation and the policy check never leave the page. The password only goes somewhere when your own workflow sends it.

How is the strength percentage calculated?

From the typed password itself, independently of the policy you configured. Length is worth up to 60 points, 3 per character up to twenty characters, except that the counted length is also capped at twice the number of distinct characters, so `aaaaaaaa` does not score like a long password. Variety is worth the other 40, with 10 points for each class present: lowercase, uppercase, number and special character. That is why a password can be strong and still fail a rule you required, or meet every rule and still score low.

Can I use the policy only as guidance, without blocking submission?

Yes. Turn off Pending policies make the input invalid? and the rule list keeps updating as the user types, while the field stays valid. Your workflow then decides what to accept.

What is the difference between active, completed and pending policies?

Active lists the rules you switched on. Completed lists the ones the current password already satisfies, and pending the ones it does not. The three are text states, so you can show them anywhere on the page.

Why is there a Set value action but no default value field?

Because the two do different things with a secret. A default value is an expression that lives in the page definition and is evaluated on every load, which means your app has to be holding the password in plain text to have something to put there. Set value is an explicit, momentary action, and it exists for one case: your app generates a password that satisfies the policy you configured here, which the browser's own generator cannot know about. If what you want is the field to start with the password the person already has, that is the password manager's job: set Browser autocomplete to current-password and the browser fills it, without your app ever seeing it.

Why does the visibility toggle matter for accessibility?

Because a password that cannot be seen is a password that gets mistyped, and the error is invisible to the person typing. Letting the user reveal what they wrote is a recommended practice, and the toggle can be switched off when your context forbids it.