diff --git a/package-lock.json b/package-lock.json
index a780979..19252e5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,13 +1,14 @@
{
"name": "rubic-cube",
- "version": "0.0.0",
+ "version": "0.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "rubic-cube",
- "version": "0.0.0",
+ "version": "0.0.1",
"dependencies": {
+ "lucide-vue-next": "^0.564.0",
"vue": "^3.5.13"
},
"devDependencies": {
@@ -959,6 +960,15 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/lucide-vue-next": {
+ "version": "0.564.0",
+ "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.564.0.tgz",
+ "integrity": "sha512-Zf51QMPVsRPpAmlVdzzp3vUofPMgxxRd/33O+7YsTCC2Aw9J5bSnJg2ZToMZ7SHkXkeDfvpWRZuRSU0+nK2okQ==",
+ "license": "ISC",
+ "peerDependencies": {
+ "vue": ">=3.0.1"
+ }
+ },
"node_modules/magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
diff --git a/package.json b/package.json
index 13a8b99..c1f4cb9 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "rubic-cube",
"private": true,
- "version": "0.0.0",
+ "version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite",
@@ -9,6 +9,7 @@
"preview": "vite preview"
},
"dependencies": {
+ "lucide-vue-next": "^0.564.0",
"vue": "^3.5.13"
},
"devDependencies": {
diff --git a/src/App.vue b/src/App.vue
index d81bd0b..ed7a4e3 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,10 +1,28 @@
-
+
+
+
+
+
+
+
diff --git a/src/components/Footer.vue b/src/components/Footer.vue
new file mode 100644
index 0000000..35b169a
--- /dev/null
+++ b/src/components/Footer.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/src/components/NavBar.vue b/src/components/NavBar.vue
new file mode 100644
index 0000000..10063da
--- /dev/null
+++ b/src/components/NavBar.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
diff --git a/src/components/main.vue b/src/components/main.vue
index 384dd09..bb68fb2 100644
--- a/src/components/main.vue
+++ b/src/components/main.vue
@@ -117,11 +117,12 @@ const cubeStyle = computed(() => ({
.face {
width: 300px;
height: 300px;
- background: #000;
+ background: var(--cube-edge-color, #000);
padding: 9px;
box-sizing: border-box;
position: absolute;
opacity: 0.9;
+ transition: background-color 0.3s ease;
}
.stickers {
diff --git a/src/style.css b/src/style.css
index f691315..1dc9f7e 100644
--- a/src/style.css
+++ b/src/style.css
@@ -11,6 +11,24 @@
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
+
+ /* --- Glassmorphism Design System (from Nonograms) --- */
+ --bg-gradient: linear-gradient(135deg, #2c3e50 0%, #000000 100%);
+ --glass-bg: rgba(255, 255, 255, 0.05);
+ --glass-border: rgba(255, 255, 255, 0.1);
+ --glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
+ --text-color: #ffffff;
+ --text-strong: #ffffff;
+ --text-secondary: rgba(255, 255, 255, 0.85);
+ --text-muted: rgba(255, 255, 255, 0.7);
+ --accent-cyan: #00f2fe;
+ --accent-purple: #4facfe;
+ --primary-accent: #00f2fe;
+ --title-glow: rgba(0, 255, 255, 0.2);
+ --toggle-btn-border: rgba(255, 255, 255, 0.2);
+ --panel-bg: rgba(255, 255, 255, 0.05);
+ --panel-border: rgba(255, 255, 255, 0.1);
+ --panel-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
a {
@@ -25,9 +43,12 @@ a:hover {
body {
margin: 0;
display: flex;
- place-items: center;
min-width: 320px;
min-height: 100vh;
+ flex-direction: column;
+ background: var(--bg-gradient);
+ background-attachment: fixed;
+ color: var(--text-color);
}
h1 {
@@ -59,10 +80,19 @@ button:focus-visible {
}
#app {
- max-width: 1280px;
- margin: 0 auto;
- padding: 2rem;
- text-align: center;
+ width: 100%;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+/* Glassmorphism utility class */
+.glass-panel {
+ background: var(--glass-bg);
+ backdrop-filter: blur(10px);
+ border: 1px solid var(--glass-border);
+ box-shadow: var(--glass-shadow);
}
@media (prefers-color-scheme: light) {