
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
Vue UI library & design system based on Nightshade UI (nightshade).
Adds blocks and sections to the library to experiment with quicker landing page and website building.
These add ons are very experimental and still under development. So please use at your own risk.
npm install manjui
For monorepo setups or local development, you can use a file reference in your package.json:
{
"dependencies": {
"manjui": "file:../../libs/manjui"
}
}
Then run:
npm install
// In your main app file (e.g., app.ts or main.ts)
import * as manjuiComponents from 'manjui';
// Import manjui styles
import 'manjui/stylesheets/variables.css';
import 'manjui/stylesheets/baseline.css';
// Register components globally (Vue 3 example)
const app = createApp(App);
for (const [name, component] of Object.entries(manjuiComponents.components || {})) {
app.component(name, component);
}
<template>
<VGroup gap="2">
<Title>Welcome to Manjui</Title>
<Text>A Vue UI library for rapid development</Text>
<Divider />
<HGroup gap="1">
<Btn>Primary</Btn>
<Btn variant="secondary">Secondary</Btn>
</HGroup>
</VGroup>
</template>
VGroup, HGroup, HStack, SizerTitle, Subtitle, Text, LinkInputText, InputBaseBtn, Tab, TabCap, Icon, Image, Circle, DividerThemeToggle, LanguageToggleManjui includes a built-in theme manager that supports light, dark, and auto modes.
You can customize the localStorage key used by the theme manager:
// Using the theme plugin
import { themePlugin } from 'manjui';
app.use(themePlugin, {
themeStorageKey: 'my-app-theme' // Default: 'theme'
});
// Or using BaseApp
import { BaseApp } from 'manjui';
const app = new BaseApp(vueApp, mesh, {
themeStorageKey: 'my-app-theme'
});
<template>
<!-- Use the ThemeToggle component -->
<ThemeToggle />
<!-- Or use the ThemeManager directly -->
<Btn @click="toggleTheme">Toggle Theme</Btn>
</template>
<script>
export default {
inject: ['themeManager'],
methods: {
toggleTheme() {
this.themeManager.toggleTheme();
}
}
}
</script>
The LanguageToggle component provides a simple, elegant UI for language selection (e.g., "EN | PT"). It's presentation-only and doesn't handle translations itself:
<template>
<LanguageToggle
:languages="['en', 'pt']"
:current="currentLanguage"
@change="handleLanguageChange" />
</template>
<script>
export default {
data() {
return {
currentLanguage: 'en'
};
},
methods: {
handleLanguageChange(lang) {
this.currentLanguage = lang;
// Handle language change in your app
// (update i18n, fetch translations, etc.)
}
}
}
</script>
Props:
languages (Array): List of language codes to display (default: ['en', 'pt'])current (String): Currently active language (default: 'en')Events:
@change: Emitted when a language is selected, passes the language codeStyling:
Note: This component only provides the UI. You'll need to implement translation logic in your application (see your app's i18n setup or create a LanguageManager service).
Manjui uses CSS custom properties for theming. The main style files to import are:
manjui/stylesheets/variables.css - Core design tokensmanjui/stylesheets/baseline.css - Base styles and resetsmanjui/stylesheets/full.css - Complete stylesheet (alternative to importing separately)# Install dependencies
npm install
# Run development server
npm run dev
# Build library
npm run build
# Lint code
npm run lint
This project is based on the Nightshade library by Boris Okunskiy.
Name is inspired by Manjū, my German Shepherd dog.
FAQs
Vue UI library & design system based on Nightshade UI (nightshade)
The npm package manjui receives a total of 10 weekly downloads. As such, manjui popularity was classified as not popular.
We found that manjui demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.