Skip to content

Sallyn0225/shiny-mbti

Repository files navigation

✦ ShinyColors Personality Quiz ✦

Which ShinyColors idol are you?

React TypeScript Vite Tailwind CSS License

δΈ­ζ–‡ζ–‡ζ‘£


A web-based personality quiz that matches you with one of the 28 idols from
THE iDOLM@STER: Shiny Colors based on an 8-dimension personality model.


✦ What Is This?

A fun personality test inspired by the characters of ShinyColors (シャむニーカラーズ). Answer 35 questions about your personality, and the app calculates which idol you're most similar to using an 8-dimension matching algorithm with Euclidean distance scoring.

The 8 Personality Dimensions

Dimension What It Measures
Extraversion Social energy β€” do you recharge around people or alone?
Emotional Stability Stress resilience β€” do you stay calm under pressure?
Assertiveness Leadership drive β€” do you speak up and take charge?
Warmth Caring tendency β€” do you prioritize others' needs?
Openness Curiosity β€” do you enjoy exploring new ideas?
Discipline Self-control β€” do you set goals and stick to them?
Authenticity True-to-self β€” do you show the same face everywhere?
Optimism Outlook β€” do you tend to see the bright side?

All 8 Units β€” 28 Characters

Unit Members
illumination STARS Mano Β· Hiori Β· Meguru
L'Antica Kogane Β· Sakuya Β· Mamimi Β· Yuika Β· Kiriko
ALSTROEMERIA Amana Β· Tenka Β· Chiyuki
Houkago Climax Girls Kaho Β· Chiyoko Β· Juri Β· Rinze Β· Natsuha
Straylight Asahi Β· Fuyuko Β· Mei
noctchill Toru Β· Madoka Β· Koito Β· Hinana
SHHis Nichika Β· Mikoto
CoMETIK Ruka Β· Hana Β· Haruki

✦ Features

  • 35 Likert-scale questions with an intuitive 7-point agree/disagree selector
  • 8-dimension personality profiling β€” goes beyond simple type categories
  • Euclidean distance matching against 28 hand-scored character profiles
  • Top 3 results with percentage-based similarity scores
  • Radar chart comparison β€” visualize your profile vs. your best match
  • Character encyclopedia β€” browse all 28 characters by unit with expandable dimension bars
  • Result image export β€” save and share your result as a shareable PNG card
  • Trilingual UI β€” Chinese, English, and Japanese with auto-detection
  • Dark / Light mode β€” automatic persistence across sessions
  • Fully responsive β€” works on mobile, tablet, and desktop

✦ Getting Started

Prerequisites

How to check: Run node -v && npm -v in your terminal. If you see version numbers, you're all set.

Installation

# 1. Clone the repo
git clone https://github.com/Sallyn0225/shiny-mbti.git

# 2. Navigate into the project
cd shiny-mbti

# 3. Install dependencies
npm install

# 4. Start the dev server
npm run dev

Open http://localhost:5173 in your browser and start the quiz!

Building for Production

npm run build     # Output β†’ dist/
npm run preview   # Preview the production build locally

Deployment

This project can be deployed to any static hosting platform. Step-by-step guides:


✦ Project Structure

shiny-mbti/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # React UI components
β”‚   β”‚   β”œβ”€β”€ QuizPage.tsx           Landing β†’ questions β†’ results flow
β”‚   β”‚   β”œβ”€β”€ ResultPage.tsx         Top matches + radar chart
β”‚   β”‚   β”œβ”€β”€ ExportCard.tsx         Shareable result card (off-screen)
β”‚   β”‚   β”œβ”€β”€ ExportPreviewModal.tsx Export preview & download modal
β”‚   β”‚   β”œβ”€β”€ NicknameModal.tsx      Nickname input before export
β”‚   β”‚   β”œβ”€β”€ CharacterCard.tsx      Character info card
β”‚   β”‚   β”œβ”€β”€ CharacterListPage.tsx  Browse all 28 characters
β”‚   β”‚   β”œβ”€β”€ QuestionCard.tsx       Single question display
β”‚   β”‚   β”œβ”€β”€ LikertScale.tsx        7-point selector
β”‚   β”‚   β”œβ”€β”€ ProgressBar.tsx        Quiz progress indicator
β”‚   β”‚   β”œβ”€β”€ ThemeToggle.tsx        Dark/light mode switch
β”‚   β”‚   β”œβ”€β”€ LocaleToggle.tsx       Language switcher (zh/en/ja)
β”‚   β”‚   └── DisclaimerModal.tsx    About / disclaimer dialog
β”‚   β”œβ”€β”€ i18n/                # Internationalization
β”‚   β”‚   β”œβ”€β”€ index.tsx             LocaleProvider & useLocale hook
β”‚   β”‚   β”œβ”€β”€ questions.ts          Translated question text
β”‚   β”‚   └── locales/              zh.ts Β· en.ts Β· ja.ts
β”‚   β”œβ”€β”€ data/                # Static data
β”‚   β”‚   β”œβ”€β”€ characters.ts         28 character profiles & scores
β”‚   β”‚   β”œβ”€β”€ questions.ts          35 quiz questions
β”‚   β”‚   └── dimensions.ts         8 dimension definitions
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ matching.ts           Scoring & Euclidean distance
β”‚   β”‚   └── exportImage.ts        DOM-to-PNG capture utilities
β”‚   β”œβ”€β”€ contexts/ThemeContext.tsx
β”‚   β”œβ”€β”€ types/index.ts
β”‚   β”œβ”€β”€ App.tsx              # Router setup
β”‚   └── index.css            # Tailwind + global styles
β”œβ”€β”€ public/                  # Static assets
β”œβ”€β”€ index.html
└── vite.config.ts

✦ Tech Stack

UI framework
Type safety
Build tool & dev server
Utility-first styling
Radar chart visualization
Client-side routing
Result image export

✦ Friend Links


✦ Copyright Notice

Code

The source code of this project is licensed under the CC BY-NC-SA 4.0 license. See LICENSE for details.

Character IP

THE iDOLM@STER: Shiny Colors and all related characters, names, and artwork are the property of Bandai Namco Entertainment Inc.

This is a fan-made project and is not affiliated with, endorsed by, or sponsored by Bandai Namco Entertainment Inc.


Made with β™₯ for Producers everywhere

About

🌟 Which ShinyColors idol are you? β€” A personality quiz matching you to 28 idolmaster characters via 8-dimension profiling. React + TypeScript + Tailwind CSS.

Topics

Resources

License

Stars

9 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages