@lion-npm/ui 0.0.0-stage → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oxlintrc.json +8 -0
- package/AGENTS.md +0 -0
- package/Dockerfile +7 -0
- package/LICENSE +21 -0
- package/README.md +31 -2
- package/compose.yml +14 -0
- package/index.html +15 -0
- package/package.json +27 -4
- package/public/favicon.svg +1 -0
- package/public/icons.svg +24 -0
- package/src/App.tsx +84 -0
- package/src/assets/css/buttons/buttons-android.css +251 -0
- package/src/assets/css/buttons/buttons-ios.css +213 -0
- package/src/assets/css/buttons/buttons-web.css +138 -0
- package/src/assets/css/custom.css +8 -0
- package/src/assets/css/index.css +60 -0
- package/src/assets/css/inputs/inputs-android.css +259 -0
- package/src/assets/css/inputs/inputs-bootstrap.css +74 -0
- package/src/assets/css/inputs/inputs-ios.css +268 -0
- package/src/assets/css/loadings/loading-bar.css +86 -0
- package/src/assets/css/modals/modals.css +236 -0
- package/src/components/buttons/AndroidButton.tsx +43 -0
- package/src/components/buttons/BootstrapButton.tsx +50 -0
- package/src/components/buttons/IOSButton.tsx +42 -0
- package/src/components/buttons/LionButton.tsx +73 -0
- package/src/components/inputs/AndroidInput.tsx +158 -0
- package/src/components/inputs/BootstrapInput.tsx +106 -0
- package/src/components/inputs/IOSInput.tsx +163 -0
- package/src/components/inputs/LionInput.tsx +81 -0
- package/src/components/loadings/LoadingBar.tsx +21 -0
- package/src/components/modals/LionModal.tsx +155 -0
- package/src/context/LionUIComponentsContext.tsx +73 -0
- package/src/features/Header.tsx +83 -0
- package/src/features/VariantList.tsx +19 -0
- package/src/features/buttons/ButtonsSection.tsx +7 -0
- package/src/features/buttons/components/ButtonsAndroidSection.tsx +79 -0
- package/src/features/buttons/components/ButtonsBootstrapSection.tsx +77 -0
- package/src/features/buttons/components/ButtonsCustomSection.tsx +234 -0
- package/src/features/buttons/components/ButtonsIOSSection.tsx +78 -0
- package/src/features/inputs/InputsSection.tsx +7 -0
- package/src/features/inputs/components/InputsAndroidSection.tsx +155 -0
- package/src/features/inputs/components/InputsBootstrapSection.tsx +154 -0
- package/src/features/inputs/components/InputsCustomSection.tsx +234 -0
- package/src/features/inputs/components/InputsIOSSection.tsx +156 -0
- package/src/features/loadings/LoadingSection.tsx +5 -0
- package/src/features/loadings/components/LoadingBarSection.tsx +74 -0
- package/src/features/modals/ModalsSection.tsx +5 -0
- package/src/features/modals/components/ModalsAndroidSection.tsx +108 -0
- package/src/features/modals/components/ModalsDefaultForm.tsx +31 -0
- package/src/features/modals/components/ModalsDefaultInput.tsx +22 -0
- package/src/features/modals/components/ModalsIOSSection.tsx +106 -0
- package/src/features/modals/components/ModalsWebSection.tsx +104 -0
- package/src/index.ts +27 -0
- package/src/interfaces/LionUIComponentsProviderProps.tsx +7 -0
- package/src/interfaces/LionUIContextProps.tsx +6 -0
- package/src/interfaces/LionUIState.tsx +13 -0
- package/src/main.tsx +9 -0
- package/src/types/Android/AndroidInputShapeTypes.tsx +7 -0
- package/src/types/Android/AndroidInputStyleTypes.tsx +7 -0
- package/src/types/Android/AndroidShapeTypes.tsx +6 -0
- package/src/types/Android/AndroidStyleTypes.tsx +9 -0
- package/src/types/ButtonTypes.tsx +9 -0
- package/src/types/IOS/IOSInputShapeTypes.tsx +9 -0
- package/src/types/IOS/IOSInputStyleTypes.tsx +11 -0
- package/src/types/IOS/IOSShapeTypes.tsx +7 -0
- package/src/types/IOS/IOSStyleTypes.tsx +9 -0
- package/src/types/InputTypes.tsx +13 -0
- package/src/types/PlatformTypes.tsx +9 -0
- package/src/types/SizeTypes.tsx +11 -0
- package/src/types/VariantTypes.tsx +19 -0
- package/src/types/Web/BootstrapInputShapeTypes.tsx +9 -0
- package/src/types/Web/BootstrapInputStyleTypes.tsx +8 -0
- package/src/types/Web/BootstrapShapeTypes.tsx +8 -0
- package/src/types/Web/BootstrapStyleTypes.tsx +7 -0
- package/tsconfig.app.json +26 -0
- package/tsconfig.json +7 -0
- package/tsconfig.node.json +23 -0
- package/vite.config.ts +30 -0
package/.oxlintrc.json
ADDED
package/AGENTS.md
ADDED
|
File without changes
|
package/Dockerfile
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lion-Packages
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,32 @@
|
|
|
1
|
-
#
|
|
1
|
+
# React + TypeScript + Vite
|
|
2
2
|
|
|
3
|
-
This
|
|
3
|
+
This template provides a minimal setup to get React working in Vite with HMR and some Oxlint rules.
|
|
4
|
+
|
|
5
|
+
Currently, two official plugins are available:
|
|
6
|
+
|
|
7
|
+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
|
|
8
|
+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
|
|
9
|
+
|
|
10
|
+
## React Compiler
|
|
11
|
+
|
|
12
|
+
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
|
13
|
+
|
|
14
|
+
## Expanding the Oxlint configuration
|
|
15
|
+
|
|
16
|
+
If you are developing a production application, we recommend enabling type-aware lint rules by installing `oxlint-tsgolint` and editing `.oxlintrc.json`:
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
|
21
|
+
"plugins": ["react", "typescript", "oxc"],
|
|
22
|
+
"options": {
|
|
23
|
+
"typeAware": true
|
|
24
|
+
},
|
|
25
|
+
"rules": {
|
|
26
|
+
"react/rules-of-hooks": "error",
|
|
27
|
+
"react/only-export-components": ["warn", { "allowConstantExport": true }]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
See the [Oxlint rules documentation](https://oxc.rs/docs/guide/usage/linter/rules) for the full list of rules and categories.
|
package/compose.yml
ADDED
package/index.html
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<title>Lion-UI</title>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
8
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
|
9
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="root"></div>
|
|
13
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
14
|
+
</body>
|
|
15
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lion-npm/ui",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "1.0.2",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "vite",
|
|
8
|
+
"build": "tsc -b && vite build",
|
|
9
|
+
"lint": "oxlint",
|
|
10
|
+
"preview": "vite preview"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@capacitor/core": "^8.5.2",
|
|
14
|
+
"bootstrap": "^5.3.8",
|
|
15
|
+
"react": "^19.2.7",
|
|
16
|
+
"react-bootstrap": "^2.10.10",
|
|
17
|
+
"react-dom": "^19.2.7"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/node": "^24.13.2",
|
|
21
|
+
"@types/react": "^19.2.17",
|
|
22
|
+
"@types/react-dom": "^19.2.3",
|
|
23
|
+
"@vitejs/plugin-react": "^6.0.3",
|
|
24
|
+
"oxlint": "^1.71.0",
|
|
25
|
+
"react-router-dom": "^7.18.4",
|
|
26
|
+
"typescript": "~6.0.2",
|
|
27
|
+
"vite": "^8.1.1"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
|
package/public/icons.svg
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<symbol id="bluesky-icon" viewBox="0 0 16 17">
|
|
3
|
+
<g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
|
|
4
|
+
<defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
|
|
5
|
+
</symbol>
|
|
6
|
+
<symbol id="discord-icon" viewBox="0 0 20 19">
|
|
7
|
+
<path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
|
|
8
|
+
</symbol>
|
|
9
|
+
<symbol id="documentation-icon" viewBox="0 0 21 20">
|
|
10
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
|
|
11
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
|
|
12
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
|
|
13
|
+
</symbol>
|
|
14
|
+
<symbol id="github-icon" viewBox="0 0 19 19">
|
|
15
|
+
<path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
|
|
16
|
+
</symbol>
|
|
17
|
+
<symbol id="social-icon" viewBox="0 0 20 20">
|
|
18
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
|
|
19
|
+
<path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
|
|
20
|
+
</symbol>
|
|
21
|
+
<symbol id="x-icon" viewBox="0 0 19 19">
|
|
22
|
+
<path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
|
|
23
|
+
</symbol>
|
|
24
|
+
</svg>
|
package/src/App.tsx
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import "./assets/css/index.css";
|
|
2
|
+
import "./assets/css/custom.css";
|
|
3
|
+
|
|
4
|
+
import "./assets/css/buttons/buttons-android.css";
|
|
5
|
+
import "./assets/css/buttons/buttons-ios.css";
|
|
6
|
+
import "./assets/css/buttons/buttons-web.css";
|
|
7
|
+
|
|
8
|
+
import "./assets/css/inputs/inputs-android.css";
|
|
9
|
+
import "./assets/css/inputs/inputs-ios.css";
|
|
10
|
+
import "./assets/css/inputs/inputs-bootstrap.css";
|
|
11
|
+
|
|
12
|
+
import "./assets/css/modals/modals.css";
|
|
13
|
+
|
|
14
|
+
import "./assets/css/loadings/loading-bar.css";
|
|
15
|
+
|
|
16
|
+
import { Fragment } from "react";
|
|
17
|
+
import { Container } from "react-bootstrap";
|
|
18
|
+
import { Routes, Route } from 'react-router-dom';
|
|
19
|
+
import { LionUIComponentsProvider } from "./context/LionUIComponentsContext.tsx";
|
|
20
|
+
import Header from "./features/Header.tsx";
|
|
21
|
+
import ButtonsSection from "./features/buttons/ButtonsSection.tsx";
|
|
22
|
+
import ButtonsAndroidSection from "./features/buttons/components/ButtonsAndroidSection.tsx";
|
|
23
|
+
import ButtonsIOSSection from "./features/buttons/components/ButtonsIOSSection.tsx";
|
|
24
|
+
import ButtonsBootstrapSection from "./features/buttons/components/ButtonsBootstrapSection.tsx";
|
|
25
|
+
import ButtonsCustomSection from "./features/buttons/components/ButtonsCustomSection.tsx";
|
|
26
|
+
import InputsSection from "./features/inputs/InputsSection.tsx";
|
|
27
|
+
import InputsAndroidSection from "./features/inputs/components/InputsAndroidSection.tsx";
|
|
28
|
+
import InputsIOSSection from "./features/inputs/components/InputsIOSSection.tsx";
|
|
29
|
+
import InputsBootstrapSection from "./features/inputs/components/InputsBootstrapSection.tsx";
|
|
30
|
+
import ModalsSection from "./features/modals/ModalsSection.tsx";
|
|
31
|
+
import ModalsAndroidSection from "./features/modals/components/ModalsAndroidSection.tsx";
|
|
32
|
+
import ModalsIOSSection from "./features/modals/components/ModalsIOSSection.tsx";
|
|
33
|
+
import ModalsWebSection from "./features/modals/components/ModalsWebSection.tsx";
|
|
34
|
+
import LoadingSection from "./features/loadings/LoadingSection.tsx";
|
|
35
|
+
import LoadingBarSection from "./features/loadings/components/LoadingBarSection.tsx";
|
|
36
|
+
import InputsCustomSection from "./features/inputs/components/InputsCustomSection.tsx";
|
|
37
|
+
|
|
38
|
+
export default function App() {
|
|
39
|
+
return (
|
|
40
|
+
<Fragment>
|
|
41
|
+
<Header />
|
|
42
|
+
|
|
43
|
+
<Container className={"py-2"}>
|
|
44
|
+
<LionUIComponentsProvider>
|
|
45
|
+
<Routes>
|
|
46
|
+
<Route path={"/"} element={<h1>Explore the page.</h1>} />
|
|
47
|
+
|
|
48
|
+
<Route path={"buttons"} element={<ButtonsSection />}>
|
|
49
|
+
<Route path={"custom"} element={<ButtonsCustomSection />} />
|
|
50
|
+
|
|
51
|
+
<Route path={"android"} element={<ButtonsAndroidSection />} />
|
|
52
|
+
|
|
53
|
+
<Route path={"ios"} element={<ButtonsIOSSection />} />
|
|
54
|
+
|
|
55
|
+
<Route path={"web"} element={<ButtonsBootstrapSection />} />
|
|
56
|
+
</Route>
|
|
57
|
+
|
|
58
|
+
<Route path={"inputs"} element={<InputsSection />}>
|
|
59
|
+
<Route path={"custom"} element={<InputsCustomSection />} />
|
|
60
|
+
|
|
61
|
+
<Route path={"android"} element={<InputsAndroidSection />} />
|
|
62
|
+
|
|
63
|
+
<Route path={"ios"} element={<InputsIOSSection />} />
|
|
64
|
+
|
|
65
|
+
<Route path={"web"} element={<InputsBootstrapSection />} />
|
|
66
|
+
</Route>
|
|
67
|
+
|
|
68
|
+
<Route path={"modals"} element={<ModalsSection />}>
|
|
69
|
+
<Route path={"android"} element={<ModalsAndroidSection />} />
|
|
70
|
+
|
|
71
|
+
<Route path={"ios"} element={<ModalsIOSSection />} />
|
|
72
|
+
|
|
73
|
+
<Route path={"web"} element={<ModalsWebSection />} />
|
|
74
|
+
</Route>
|
|
75
|
+
|
|
76
|
+
<Route path={"loadings"} element={<LoadingSection />}>
|
|
77
|
+
<Route path={"bar"} element={<LoadingBarSection />} />
|
|
78
|
+
</Route>
|
|
79
|
+
</Routes>
|
|
80
|
+
</LionUIComponentsProvider>
|
|
81
|
+
</Container>
|
|
82
|
+
</Fragment>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
Android Material Design 3 - Base Configuration
|
|
3
|
+
========================================================================== */
|
|
4
|
+
|
|
5
|
+
.android-btn {
|
|
6
|
+
--btn-color: #0d6efd;
|
|
7
|
+
--btn-bg: var(--btn-color);
|
|
8
|
+
--btn-text: #ffffff;
|
|
9
|
+
--btn-disabled-bg: rgba(28, 27, 31, 0.12);
|
|
10
|
+
--btn-disabled-color: rgba(28, 27, 31, 0.38);
|
|
11
|
+
--btn-disabled-border: transparent;
|
|
12
|
+
|
|
13
|
+
position: relative;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
border: 1px solid transparent;
|
|
19
|
+
font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
letter-spacing: 0.1px;
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
transition: background-color 0.2s cubic-bezier(0.2, 0, 0, 1),
|
|
24
|
+
box-shadow 0.2s cubic-bezier(0.2, 0, 0, 1),
|
|
25
|
+
border-color 0.2s cubic-bezier(0.2, 0, 0, 1),
|
|
26
|
+
border-radius 0.2s cubic-bezier(0.2, 0, 0, 1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Shapes: Pill vs Rounded Rectangle */
|
|
30
|
+
.android-btn-pill.android-btn-sm { border-radius: 16px; }
|
|
31
|
+
.android-btn-pill.android-btn-md { border-radius: 20px; }
|
|
32
|
+
.android-btn-pill.android-btn-lg { border-radius: 24px; }
|
|
33
|
+
|
|
34
|
+
.android-btn-rounded.android-btn-sm { border-radius: 6px; }
|
|
35
|
+
.android-btn-rounded.android-btn-md { border-radius: 8px; }
|
|
36
|
+
.android-btn-rounded.android-btn-lg { border-radius: 12px; }
|
|
37
|
+
|
|
38
|
+
/* ==========================================================================
|
|
39
|
+
M3 Base Disabled Behavior (Universal Reset)
|
|
40
|
+
========================================================================== */
|
|
41
|
+
|
|
42
|
+
.android-btn:disabled,
|
|
43
|
+
.android-btn.disabled,
|
|
44
|
+
fieldset:disabled .android-btn {
|
|
45
|
+
cursor: not-allowed !important;
|
|
46
|
+
box-shadow: none !important;
|
|
47
|
+
pointer-events: none;
|
|
48
|
+
opacity: 0.38 !important; /* M3 standard opacity for disabled state */
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Maintain original background color when disabled with opacity */
|
|
52
|
+
.android-btn-filled:disabled,
|
|
53
|
+
.android-btn-filled.disabled {
|
|
54
|
+
background-color: var(--btn-bg) !important;
|
|
55
|
+
color: var(--btn-text) !important;
|
|
56
|
+
border-color: transparent !important;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.android-btn-elevated:disabled,
|
|
60
|
+
.android-btn-elevated.disabled {
|
|
61
|
+
background-color: #ffffff !important;
|
|
62
|
+
color: var(--btn-color) !important;
|
|
63
|
+
border-color: transparent !important;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.android-btn-tonal:disabled,
|
|
67
|
+
.android-btn-tonal.disabled {
|
|
68
|
+
background-color: color-mix(in srgb, var(--btn-color) 16%, #ffffff) !important;
|
|
69
|
+
color: var(--btn-color) !important;
|
|
70
|
+
border-color: transparent !important;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.android-btn-outlined:disabled,
|
|
74
|
+
.android-btn-outlined.disabled {
|
|
75
|
+
background-color: transparent !important;
|
|
76
|
+
color: var(--btn-color) !important;
|
|
77
|
+
border-color: var(--btn-color) !important;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.android-btn-text:disabled,
|
|
81
|
+
.android-btn-text.disabled {
|
|
82
|
+
background-color: transparent !important;
|
|
83
|
+
color: var(--btn-color) !important;
|
|
84
|
+
border-color: transparent !important;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* ==========================================================================
|
|
88
|
+
M3 Styles (Filled, Elevated, Tonal, Outlined, Text)
|
|
89
|
+
========================================================================== */
|
|
90
|
+
|
|
91
|
+
/* 1. Filled Button */
|
|
92
|
+
.android-btn-filled {
|
|
93
|
+
background-color: var(--btn-bg);
|
|
94
|
+
color: var(--btn-text) !important;
|
|
95
|
+
}
|
|
96
|
+
.android-btn-filled:hover:not(:disabled):not(.disabled) {
|
|
97
|
+
filter: brightness(0.92);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* 2. Elevated Button */
|
|
101
|
+
.android-btn-elevated {
|
|
102
|
+
background-color: #ffffff;
|
|
103
|
+
color: var(--btn-color) !important;
|
|
104
|
+
box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.30);
|
|
105
|
+
}
|
|
106
|
+
.android-btn-elevated:hover:not(:disabled):not(.disabled) {
|
|
107
|
+
box-shadow: 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px 0px rgba(0, 0, 0, 0.30);
|
|
108
|
+
background-color: rgba(0, 0, 0, 0.02);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* 3. Filled Tonal Button */
|
|
112
|
+
.android-btn-tonal {
|
|
113
|
+
background-color: color-mix(in srgb, var(--btn-color) 16%, #ffffff);
|
|
114
|
+
color: var(--btn-color) !important;
|
|
115
|
+
}
|
|
116
|
+
.android-btn-tonal:hover:not(:disabled):not(.disabled) {
|
|
117
|
+
background-color: color-mix(in srgb, var(--btn-color) 24%, #ffffff);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* 4. Outlined Button */
|
|
121
|
+
.android-btn-outlined {
|
|
122
|
+
background-color: transparent;
|
|
123
|
+
color: var(--btn-color) !important;
|
|
124
|
+
border-color: var(--btn-color);
|
|
125
|
+
}
|
|
126
|
+
.android-btn-outlined:hover:not(:disabled):not(.disabled) {
|
|
127
|
+
background-color: color-mix(in srgb, var(--btn-color) 8%, transparent);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* 5. Text Button */
|
|
131
|
+
.android-btn-text {
|
|
132
|
+
background-color: transparent;
|
|
133
|
+
color: var(--btn-color) !important;
|
|
134
|
+
}
|
|
135
|
+
.android-btn-text:hover:not(:disabled):not(.disabled) {
|
|
136
|
+
background-color: color-mix(in srgb, var(--btn-color) 8%, transparent);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* ==========================================================================
|
|
140
|
+
Ripple Effect
|
|
141
|
+
========================================================================== */
|
|
142
|
+
|
|
143
|
+
.android-btn .ripple {
|
|
144
|
+
position: absolute;
|
|
145
|
+
inset: 0;
|
|
146
|
+
border-radius: inherit;
|
|
147
|
+
background-color: currentColor;
|
|
148
|
+
opacity: 0;
|
|
149
|
+
pointer-events: none;
|
|
150
|
+
transition: opacity 0.2s ease-in-out;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.android-btn:active:not(:disabled):not(.disabled) .ripple {
|
|
154
|
+
opacity: 0.12;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* ==========================================================================
|
|
158
|
+
Sizes
|
|
159
|
+
========================================================================== */
|
|
160
|
+
|
|
161
|
+
.android-btn-sm {
|
|
162
|
+
height: 32px;
|
|
163
|
+
padding: 0 12px;
|
|
164
|
+
font-size: 0.8125rem;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.android-btn-md {
|
|
168
|
+
height: 40px;
|
|
169
|
+
padding: 0 24px;
|
|
170
|
+
font-size: 0.875rem;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.android-btn-lg {
|
|
174
|
+
height: 48px;
|
|
175
|
+
padding: 0 28px;
|
|
176
|
+
font-size: 1rem;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* ==========================================================================
|
|
180
|
+
Color Mapping and Text Contrast Fixes
|
|
181
|
+
========================================================================== */
|
|
182
|
+
|
|
183
|
+
.android-btn.btn-primary {
|
|
184
|
+
--btn-color: #0d6efd;
|
|
185
|
+
--btn-text: #ffffff;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.android-btn.btn-secondary {
|
|
189
|
+
--btn-color: #6c757d;
|
|
190
|
+
--btn-text: #ffffff;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.android-btn.btn-success {
|
|
194
|
+
--btn-color: #198754;
|
|
195
|
+
--btn-text: #ffffff;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.android-btn.btn-danger {
|
|
199
|
+
--btn-color: #dc3545;
|
|
200
|
+
--btn-text: #ffffff;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.android-btn.btn-warning {
|
|
204
|
+
--btn-color: #ffc107;
|
|
205
|
+
--btn-text: #000000;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.android-btn.btn-info {
|
|
209
|
+
--btn-color: #0dcaf0;
|
|
210
|
+
--btn-text: #000000;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.android-btn.btn-light {
|
|
214
|
+
--btn-color: #6c757d;
|
|
215
|
+
--btn-bg: #f8f9fa;
|
|
216
|
+
--btn-text: #212529;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.android-btn.btn-dark {
|
|
220
|
+
--btn-color: #212529;
|
|
221
|
+
--btn-text: #ffffff;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.android-btn.btn-link {
|
|
225
|
+
--btn-color: #0d6efd;
|
|
226
|
+
--btn-text: #0d6efd;
|
|
227
|
+
background-color: transparent !important;
|
|
228
|
+
text-decoration: underline;
|
|
229
|
+
box-shadow: none !important;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/* Custom Lion Variants */
|
|
233
|
+
.android-btn.btn-lion-packages {
|
|
234
|
+
--btn-color: var(--lion-packages, #6f42c1);
|
|
235
|
+
--btn-text: #ffffff;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.android-btn.btn-lion-parking {
|
|
239
|
+
--btn-color: var(--lion-parking, #fd7e14);
|
|
240
|
+
--btn-text: #ffffff;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.android-btn.btn-lion-tech {
|
|
244
|
+
--btn-color: var(--lion-tech, #20c997);
|
|
245
|
+
--btn-text: #ffffff;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.android-btn.btn-lion-glam {
|
|
249
|
+
--btn-color: var(--lion-glam, #e83e8c);
|
|
250
|
+
--btn-text: #ffffff;
|
|
251
|
+
}
|