abElements is a lightweight library of 100% free UI elements for all your Next.js, React, Vue, Lit and Flutter projects.
IMPORTANT: This is a work in progress and subject to major changes until version 1.0
This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Inter, a custom Google Font.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
This project uses the ab-nextjs-components package, and can be installed by running the following command:
npm i ab-nextjs-components
# or
pnpm install ab-nextjs-componentThese are a couple of the main requirements for this project:
- A
splashscreen - always 😜 - A
homepage - duh ;) - A
docspage. - A
searchpage. - A
demopage. - TBD
MOTTO: I'll always do more 😜
Jobs related to this ab-elements-app project - a list of some specific files to be submitted as well as their corresponding / current status for this project:
| No. | Name | File | Status |
|---|---|---|---|
| 1 | Splash - Screen |
@splash/page.tsx | Pending |
| 2 | Welcome - Screen |
@welcome/page.tsx | Pending |
| 3 | Home - Page |
(pages)/page.tsx | Pending |
| 4 | Docs - Page |
(pages)/docs/page.tsx | Pending |
| 5 | Search - Page |
(pages)/search/page.tsx | Pending |
| 6 | Demo - Page |
(pages)/demo/page.tsx | Pending |
| 7 | Color - Theme |
assets/theme/color.css | Pending |
| 8 | Styles - Theme |
assets/theme/styles.css | Pending |
| 9 | Colors - Theme Module |
assets/theme/colors.js | Pending |
| 10 | Typography - Theme |
assets/theme/typography.css | Pending |
| 11 | Root / App - Styles |
src/app/globals.css | Pending |
| 12 | Root / App - Layout |
src/app/[locale]/layout.tsx | Pending |
| 13 | Root / App |
src/app/[locale]/page.tsx | Pending |
| 14 | Pages - Styles |
(pages)/styles.module.css | Pending |
| 15 | Pages - Layout |
(pages)/layout.tsx | Pending |
| 16 | Pages - Loading |
(pages)/loading.tsx | Pending |
| 17 | Pages - Error |
(pages)/error.tsx | Pending |
| 18 | Pages - Default |
(pages)/default.tsx | Pending |
| 19 | useElement - Hook |
hooks/useElement.ts | Pending |
| 20 | Element - Provider |
providers/element-provider | Pending |
WARNING: This list is a work in progress and will change soon
NOTE: (*) = still needs to be updated (TBD) = to be determined ;)
IMPORTANT:
ab-elements-appuses the App Router feature of Next.js.
The folder & file structure of this Next.js project, based on it's Project Structure:
src
├── app
│ ├── [locale]
│ │ ├── @splash
│ │ ├── @welcome
│ │ ├── (pages)
│ │ │ ├── docs
│ │ │ │ ├── aside.tsx
│ │ │ │ ├── main.tsx
│ │ │ │ ├── page.tsx
│ │ │ │ └── styles.module.css
│ │ │ ├── demo
│ │ │ ├── search
│ │ │ ├── ...
│ │ │ ├── page.tsx
│ │ ├── components # <- DEPRECATED: using `ab-nextjs-components` instead ;)
│ │ │ ├── ab-button
│ │ │ ├── ab-collapsible
│ │ │ ├── ab-icon-button
│ │ │ │ ├── index.tsx
│ │ │ │ └── styles.module.css
│ │ │ ├── ...
│ │ │ └── server
│ │ │ ├── ab-avatar
│ │ │ ├── ab-logo
│ │ │ │ ├── index.tsx
│ │ │ │ └── styles.module.css
│ │ │ └── ...
│ │ ├── core # <- DEPRECATED: using `ab-nextjs-core` instead ;)
│ │ │ └── server
│ │ │ ├── ab-app-layout
│ │ │ ├── ab-aside-layout
│ │ │ └── ab-main-layout
│ │ ├── globals.css
│ │ ├── hooks # <- DEPRECATED: using `ab-nextjs-hooks` instead ;)
│ │ │ ├── index.ts
│ │ │ └── useElement.ts
│ │ ├── layout.tsx
│ │ ├── metadata.ts
│ │ ├── sections
│ │ ├── skeletons
│ │ └── views
│ └── favicon.ico
├── i18n.ts
├── messages
│ ├── en.json
│ ├── es.json
│ ├── fr.json
│ └── ru.json
└── middleware.ts- public
-
-
- manifest.json
-
-
-
- ...
-
-
-
-
- fade-in-animation.css
-
-
-
-
-
- pop-in-animation.css
-
-
-
-
-
- slide-from-down-animation.css
-
-
-
-
-
- color.css
-
-
-
-
-
- typography.css
-
-
-
-
-
- styles.css
-
-
- LICENSE
- README.md
- package.json
- ab_translator.mjs
NOTE: This is just a relatively short snippet derived from the root folder, and it should get periodically update.
These are some of the things we did or plan to do, in addition to this project's requirements:
| No. | Name | File | Status |
|---|---|---|---|
| 1 | Pop In - Animation |
pop-in-animation.css | Pending |
| 2 | Fade In - Animation |
fade-in-animation.css | Pending |
| 3 | Slide From Down - Animation |
slide-from-down-animation.css | Pending |
| 4 | Slide From Up - Animation |
slide-from-up-animation.css | Pending |
| 5 | Slide Left - Animation |
slide-left-animation.css | Pending |
| 6 | Slide From Left - Animation |
slide-from-left-animation.css | Pending |
| 7 | Slide Right - Animation |
slide-right-animation.css | Pending |
| 8 | Slide From Right - Animation |
slide-from-right-animation.css | Pending |
| 9 | Manifest - JSON File |
manifest.json | Pending |
| 10 | Package - JSON File |
package.json | Done* |
| 11 | Fade Out - Animation |
fade-out-animation.css | Pending |
| 12 | Slide Down - Animation |
slide-down-animation.css | Pending |
| 13 | Slide Up - Animation |
slide-up-animation.css | Pending |
| 14 | AB Translator - Script |
ab_translator.mjs | Pending |
| 19 | AB Theme - Stylesheet |
assets/theme/ab-theme.css | Pending |
NOTE: (*) = still needs to be updated.
There's certainly a couple of file we must've forgot or not added yet, so we'll keep the above list updated obv. :)
IMPORTANT: All the tests are performed end-to-end reliably using playwright
| Browser | Version | Status | Date | Time |
|---|---|---|---|---|
Arc |
- | Pending | - | - |
Brave |
- | Pending | - | - |
Chrome |
- | Pending | - | - |
Firefox |
- | Pending | - | - |
Safari |
- | Pending | - | - |
Opera |
- | Pending | - | - |
Edge |
- | Pending | - | - |
IE |
- | Pending | - | - |
NOTE:
IE= Internet Explorer = 👎🏽
IMPORTANT: You must install translate-shell first.
A script that currently automates the translation of ab-elements-app into 4 different languages (i.e. english, french, russian and spanish)
GOOD-TO-KNOW: next-intl is currently used for internationalization of
ab-elements-app.
To translate the ab-elements-app strings messages to another language (say, french fr), use the ab_translator.mjs node script by running the code below in your terminal:
node ab_translator.mjs messages frNOTE: The source file (e.g.
fr.json) should be updated afterwards to fix typos and/or adapt the texts accordingly.
- Create the project-specific logos
- Add localization / internationalization (at least: en, fr, ru and es)
- 🌱 Create a
ab-nextjs-corenpm package - 💫 Create a
ab-nextjs-animationsnpm package - 🎨 Create a
ab-nextjs-themenpm package - 📦 Create a
ab-nextjs-componentsnpm package - ✏️ Create a
ab-nextjs-fontsnpm package - ⭐️ Create a
ab-nextjs-iconsnpm package - 🪝 Create a
ab-nextjs-hooksnpm package
- 🌱 Create a
ab-react-corenpm package - 💫 Create a
ab-react-animationsnpm package - 🎨 Create a
ab-react-themenpm package - 📦 Create a
ab-react-componentsnpm package - ✏️ Create a
ab-react-fontsnpm package - ⭐️ Create a
ab-react-iconsnpm package - 🪝 Create a
ab-react-hooksnpm package
- 🌱 Create a
ab-vue-corenpm package - 💫 Create a
ab-vue-animationsnpm package - 🎨 Create a
ab-vue-themenpm package - 📦 Create a
ab-vue-componentsnpm package - ✏️ Create a
ab-vue-fontsnpm package - ⭐️ Create a
ab-vue-iconsnpm package - 🪝 Create a
ab-vue-hooksnpm package
- 🌱 Create a
ab-lit-corenpm package - 💫 Create a
ab-lit-animationsnpm package - 🎨 Create a
ab-lit-themenpm package - 📦 Create a
ab-lit-componentsnpm package - ✏️ Create a
ab-lit-fontsnpm package - ⭐️ Create a
ab-lit-iconsnpm package - 🪝 Create a
ab-lit-hooksnpm package
- 🌱 Create a
ab-flutter-corenpm package - 💫 Create a
ab-flutter-animationsnpm package - 🎨 Create a
ab-flutter-themenpm package - 📦 Create a
ab-flutter-componentsnpm package - ✏️ Create a
ab-flutter-fontsnpm package - ⭐️ Create a
ab-flutter-iconsnpm package - 🪝 Create a
ab-flutter-hooksnpm package
The design & development of this project was inspired by the following:
| Name | Type | Inspired By |
|---|---|---|
tailwindcss.com |
Framework |
website, documentation, ui, search |
catalyst |
UI Kit |
ui, components, documentation |
google fonts |
Icons/Symbols |
search, layout, icons/symbols |
NOTE: The above
catalystUI kit is currently €129 (plus local taxes), butabElementsis 100% free and always will be ;)
To learn more about abElements, take a look at the following resources:
- abElements Documentation - learn about abElements features and API.
You can check out the abElements GitHub repository for more details.
This ab-elements-app project is MIT Licensed ;)