Changeset 875f7d6
- Timestamp:
- 09/24/25 23:51:18 (12 months ago)
- Branches:
- master
- Children:
- 636f86c
- Parents:
- 65f7b64
- Files:
-
- 7 added
- 6 edited
-
components.json (added)
-
package-lock.json (modified) (17 diffs)
-
package.json (modified) (1 diff)
-
public/finki-logo.png (added)
-
public/ukim-logo.png (added)
-
src/app/favicon.ico (modified) ( previous)
-
src/app/globals.css (modified) (2 diffs)
-
src/app/layout.tsx (modified) (3 diffs)
-
src/app/page.tsx (modified) (1 diff)
-
src/components/exams.tsx (added)
-
src/components/header.tsx (added)
-
src/components/navbar.tsx (added)
-
src/lib/utils.ts (added)
Legend:
- Unmodified
- Added
- Removed
-
package-lock.json
r65f7b64 r875f7d6 9 9 "version": "0.1.0", 10 10 "dependencies": { 11 "@fortawesome/fontawesome-svg-core": "^7.0.1", 12 "@fortawesome/free-brands-svg-icons": "^7.0.1", 13 "@fortawesome/free-regular-svg-icons": "^7.0.1", 14 "@fortawesome/free-solid-svg-icons": "^7.0.1", 15 "@fortawesome/react-fontawesome": "^3.0.2", 16 "class-variance-authority": "^0.7.1", 17 "clsx": "^2.1.1", 18 "lucide-react": "^0.544.0", 11 19 "next": "15.5.4", 12 20 "react": "19.1.0", 13 "react-dom": "19.1.0" 21 "react-dom": "19.1.0", 22 "tailwind-merge": "^3.3.1" 14 23 }, 15 24 "devDependencies": { … … 19 28 "@types/react": "^19", 20 29 "@types/react-dom": "^19", 30 "autoprefixer": "^10.4.21", 21 31 "eslint": "^9", 22 32 "eslint-config-next": "15.5.4", 23 "tailwindcss": "^4", 33 "postcss": "^8.5.6", 34 "tailwindcss": "^4.1.13", 35 "tw-animate-css": "^1.4.0", 24 36 "typescript": "^5" 25 37 } … … 210 222 "engines": { 211 223 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 224 } 225 }, 226 "node_modules/@fortawesome/fontawesome-common-types": { 227 "version": "7.0.1", 228 "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.0.1.tgz", 229 "integrity": "sha512-0VpNtO5cNe1/HQWMkl4OdncYK/mv9hnBte0Ew0n6DMzmo3Q3WzDFABHm6LeNTipt5zAyhQ6Ugjiu8aLaEjh1gg==", 230 "license": "MIT", 231 "engines": { 232 "node": ">=6" 233 } 234 }, 235 "node_modules/@fortawesome/fontawesome-svg-core": { 236 "version": "7.0.1", 237 "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.0.1.tgz", 238 "integrity": "sha512-x0cR55ILVqFpUioSMf6ebpRCMXMcheGN743P05W2RB5uCNpJUqWIqW66Lap8PfL/lngvjTbZj0BNSUweIr/fHQ==", 239 "license": "MIT", 240 "dependencies": { 241 "@fortawesome/fontawesome-common-types": "7.0.1" 242 }, 243 "engines": { 244 "node": ">=6" 245 } 246 }, 247 "node_modules/@fortawesome/free-brands-svg-icons": { 248 "version": "7.0.1", 249 "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.0.1.tgz", 250 "integrity": "sha512-6xPmn5SrND/GM0+W33E77x05+aDn6RpR02eWd8eLdN0IxY0vXa5yU/ugaAKloOVxiG9w2330TSRsbJYL6c57Ow==", 251 "license": "(CC-BY-4.0 AND MIT)", 252 "dependencies": { 253 "@fortawesome/fontawesome-common-types": "7.0.1" 254 }, 255 "engines": { 256 "node": ">=6" 257 } 258 }, 259 "node_modules/@fortawesome/free-regular-svg-icons": { 260 "version": "7.0.1", 261 "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-7.0.1.tgz", 262 "integrity": "sha512-4V9fHbHjcx9Qu4O99AM5B4zuEDfB4zajk1I77hEzOxPN00f8g3484Aeq6WpfFcmookvjLE3Pr71Dhf/lqw7tbA==", 263 "license": "(CC-BY-4.0 AND MIT)", 264 "dependencies": { 265 "@fortawesome/fontawesome-common-types": "7.0.1" 266 }, 267 "engines": { 268 "node": ">=6" 269 } 270 }, 271 "node_modules/@fortawesome/free-solid-svg-icons": { 272 "version": "7.0.1", 273 "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.0.1.tgz", 274 "integrity": "sha512-esKuSrl1WMOTMDLNt38i16VfLe/gRZt2ZAJ3Yw7slfs7sj583MKqNFqO57zmhknk1Sya6f9Wys89aCzIJkcqlg==", 275 "license": "(CC-BY-4.0 AND MIT)", 276 "dependencies": { 277 "@fortawesome/fontawesome-common-types": "7.0.1" 278 }, 279 "engines": { 280 "node": ">=6" 281 } 282 }, 283 "node_modules/@fortawesome/react-fontawesome": { 284 "version": "3.0.2", 285 "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-3.0.2.tgz", 286 "integrity": "sha512-cmp/nT0pPC7HUALF8uc3+D5ECwEBWxYQbOIHwtGUWEu72sWtZc26k5onr920HWOViF0nYaC+Qzz6Ln56SQcaVg==", 287 "license": "MIT", 288 "engines": { 289 "node": ">=20" 290 }, 291 "peerDependencies": { 292 "@fortawesome/fontawesome-svg-core": "~6 || ~7", 293 "react": "^18.0.0 || ^19.0.0" 212 294 } 213 295 }, … … 2128 2210 } 2129 2211 }, 2212 "node_modules/autoprefixer": { 2213 "version": "10.4.21", 2214 "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", 2215 "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", 2216 "dev": true, 2217 "funding": [ 2218 { 2219 "type": "opencollective", 2220 "url": "https://opencollective.com/postcss/" 2221 }, 2222 { 2223 "type": "tidelift", 2224 "url": "https://tidelift.com/funding/github/npm/autoprefixer" 2225 }, 2226 { 2227 "type": "github", 2228 "url": "https://github.com/sponsors/ai" 2229 } 2230 ], 2231 "license": "MIT", 2232 "dependencies": { 2233 "browserslist": "^4.24.4", 2234 "caniuse-lite": "^1.0.30001702", 2235 "fraction.js": "^4.3.7", 2236 "normalize-range": "^0.1.2", 2237 "picocolors": "^1.1.1", 2238 "postcss-value-parser": "^4.2.0" 2239 }, 2240 "bin": { 2241 "autoprefixer": "bin/autoprefixer" 2242 }, 2243 "engines": { 2244 "node": "^10 || ^12 || >=14" 2245 }, 2246 "peerDependencies": { 2247 "postcss": "^8.1.0" 2248 } 2249 }, 2130 2250 "node_modules/available-typed-arrays": { 2131 2251 "version": "1.0.7", … … 2171 2291 "license": "MIT" 2172 2292 }, 2293 "node_modules/baseline-browser-mapping": { 2294 "version": "2.8.6", 2295 "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.6.tgz", 2296 "integrity": "sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==", 2297 "dev": true, 2298 "license": "Apache-2.0", 2299 "bin": { 2300 "baseline-browser-mapping": "dist/cli.js" 2301 } 2302 }, 2173 2303 "node_modules/brace-expansion": { 2174 2304 "version": "1.1.12", … … 2193 2323 "engines": { 2194 2324 "node": ">=8" 2325 } 2326 }, 2327 "node_modules/browserslist": { 2328 "version": "4.26.2", 2329 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", 2330 "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", 2331 "dev": true, 2332 "funding": [ 2333 { 2334 "type": "opencollective", 2335 "url": "https://opencollective.com/browserslist" 2336 }, 2337 { 2338 "type": "tidelift", 2339 "url": "https://tidelift.com/funding/github/npm/browserslist" 2340 }, 2341 { 2342 "type": "github", 2343 "url": "https://github.com/sponsors/ai" 2344 } 2345 ], 2346 "license": "MIT", 2347 "dependencies": { 2348 "baseline-browser-mapping": "^2.8.3", 2349 "caniuse-lite": "^1.0.30001741", 2350 "electron-to-chromium": "^1.5.218", 2351 "node-releases": "^2.0.21", 2352 "update-browserslist-db": "^1.1.3" 2353 }, 2354 "bin": { 2355 "browserslist": "cli.js" 2356 }, 2357 "engines": { 2358 "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 2195 2359 } 2196 2360 }, … … 2302 2466 } 2303 2467 }, 2468 "node_modules/class-variance-authority": { 2469 "version": "0.7.1", 2470 "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", 2471 "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", 2472 "license": "Apache-2.0", 2473 "dependencies": { 2474 "clsx": "^2.1.1" 2475 }, 2476 "funding": { 2477 "url": "https://polar.sh/cva" 2478 } 2479 }, 2304 2480 "node_modules/client-only": { 2305 2481 "version": "0.0.1", … … 2307 2483 "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", 2308 2484 "license": "MIT" 2485 }, 2486 "node_modules/clsx": { 2487 "version": "2.1.1", 2488 "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 2489 "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 2490 "license": "MIT", 2491 "engines": { 2492 "node": ">=6" 2493 } 2309 2494 }, 2310 2495 "node_modules/color-convert": { … … 2516 2701 "node": ">= 0.4" 2517 2702 } 2703 }, 2704 "node_modules/electron-to-chromium": { 2705 "version": "1.5.223", 2706 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.223.tgz", 2707 "integrity": "sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==", 2708 "dev": true, 2709 "license": "ISC" 2518 2710 }, 2519 2711 "node_modules/emoji-regex": { … … 2715 2907 } 2716 2908 }, 2909 "node_modules/escalade": { 2910 "version": "3.2.0", 2911 "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 2912 "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 2913 "dev": true, 2914 "license": "MIT", 2915 "engines": { 2916 "node": ">=6" 2917 } 2918 }, 2717 2919 "node_modules/escape-string-regexp": { 2718 2920 "version": "4.0.0", … … 3295 3497 } 3296 3498 }, 3499 "node_modules/fraction.js": { 3500 "version": "4.3.7", 3501 "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", 3502 "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", 3503 "dev": true, 3504 "license": "MIT", 3505 "engines": { 3506 "node": "*" 3507 }, 3508 "funding": { 3509 "type": "patreon", 3510 "url": "https://github.com/sponsors/rawify" 3511 } 3512 }, 3297 3513 "node_modules/function-bind": { 3298 3514 "version": "1.1.2", … … 4452 4668 "bin": { 4453 4669 "loose-envify": "cli.js" 4670 } 4671 }, 4672 "node_modules/lucide-react": { 4673 "version": "0.544.0", 4674 "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.544.0.tgz", 4675 "integrity": "sha512-t5tS44bqd825zAW45UQxpG2CvcC4urOwn2TrwSH8u+MjeE+1NnWl6QqeQ/6NdjMqdOygyiT9p3Ev0p1NJykxjw==", 4676 "license": "ISC", 4677 "peerDependencies": { 4678 "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" 4454 4679 } 4455 4680 }, … … 4672 4897 } 4673 4898 }, 4899 "node_modules/node-releases": { 4900 "version": "2.0.21", 4901 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", 4902 "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", 4903 "dev": true, 4904 "license": "MIT" 4905 }, 4906 "node_modules/normalize-range": { 4907 "version": "0.1.2", 4908 "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 4909 "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", 4910 "dev": true, 4911 "license": "MIT", 4912 "engines": { 4913 "node": ">=0.10.0" 4914 } 4915 }, 4674 4916 "node_modules/object-assign": { 4675 4917 "version": "4.1.1", … … 4960 5202 "node": "^10 || ^12 || >=14" 4961 5203 } 5204 }, 5205 "node_modules/postcss-value-parser": { 5206 "version": "4.2.0", 5207 "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 5208 "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 5209 "dev": true, 5210 "license": "MIT" 4962 5211 }, 4963 5212 "node_modules/prelude-ls": { … … 5642 5891 } 5643 5892 }, 5893 "node_modules/tailwind-merge": { 5894 "version": "3.3.1", 5895 "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", 5896 "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", 5897 "license": "MIT", 5898 "funding": { 5899 "type": "github", 5900 "url": "https://github.com/sponsors/dcastil" 5901 } 5902 }, 5644 5903 "node_modules/tailwindcss": { 5645 5904 "version": "4.1.13", … … 5772 6031 "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 5773 6032 "license": "0BSD" 6033 }, 6034 "node_modules/tw-animate-css": { 6035 "version": "1.4.0", 6036 "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", 6037 "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", 6038 "dev": true, 6039 "license": "MIT", 6040 "funding": { 6041 "url": "https://github.com/sponsors/Wombosvideo" 6042 } 5774 6043 }, 5775 6044 "node_modules/type-check": { … … 5939 6208 } 5940 6209 }, 6210 "node_modules/update-browserslist-db": { 6211 "version": "1.1.3", 6212 "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 6213 "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 6214 "dev": true, 6215 "funding": [ 6216 { 6217 "type": "opencollective", 6218 "url": "https://opencollective.com/browserslist" 6219 }, 6220 { 6221 "type": "tidelift", 6222 "url": "https://tidelift.com/funding/github/npm/browserslist" 6223 }, 6224 { 6225 "type": "github", 6226 "url": "https://github.com/sponsors/ai" 6227 } 6228 ], 6229 "license": "MIT", 6230 "dependencies": { 6231 "escalade": "^3.2.0", 6232 "picocolors": "^1.1.1" 6233 }, 6234 "bin": { 6235 "update-browserslist-db": "cli.js" 6236 }, 6237 "peerDependencies": { 6238 "browserslist": ">= 4.21.0" 6239 } 6240 }, 5941 6241 "node_modules/uri-js": { 5942 6242 "version": "4.4.1", -
package.json
r65f7b64 r875f7d6 10 10 }, 11 11 "dependencies": { 12 "@fortawesome/fontawesome-svg-core": "^7.0.1", 13 "@fortawesome/free-brands-svg-icons": "^7.0.1", 14 "@fortawesome/free-regular-svg-icons": "^7.0.1", 15 "@fortawesome/free-solid-svg-icons": "^7.0.1", 16 "@fortawesome/react-fontawesome": "^3.0.2", 17 "class-variance-authority": "^0.7.1", 18 "clsx": "^2.1.1", 19 "lucide-react": "^0.544.0", 20 "next": "15.5.4", 12 21 "react": "19.1.0", 13 22 "react-dom": "19.1.0", 14 " next": "15.5.4"23 "tailwind-merge": "^3.3.1" 15 24 }, 16 25 "devDependencies": { 17 "typescript": "^5", 26 "@eslint/eslintrc": "^3", 27 "@tailwindcss/postcss": "^4", 18 28 "@types/node": "^20", 19 29 "@types/react": "^19", 20 30 "@types/react-dom": "^19", 21 "@tailwindcss/postcss": "^4", 22 "tailwindcss": "^4", 31 "autoprefixer": "^10.4.21", 23 32 "eslint": "^9", 24 33 "eslint-config-next": "15.5.4", 25 "@eslint/eslintrc": "^3" 34 "postcss": "^8.5.6", 35 "tailwindcss": "^4.1.13", 36 "tw-animate-css": "^1.4.0", 37 "typescript": "^5" 26 38 } 27 39 } -
src/app/globals.css
r65f7b64 r875f7d6 1 1 @import "tailwindcss"; 2 @import "tw-animate-css"; 2 3 3 :root { 4 --background: #ffffff; 5 --foreground: #171717; 6 } 4 @custom-variant dark (&:is(.dark *)); 7 5 8 6 @theme inline { … … 11 9 --font-sans: var(--font-geist-sans); 12 10 --font-mono: var(--font-geist-mono); 11 --color-sidebar-ring: var(--sidebar-ring); 12 --color-sidebar-border: var(--sidebar-border); 13 --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); 14 --color-sidebar-accent: var(--sidebar-accent); 15 --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); 16 --color-sidebar-primary: var(--sidebar-primary); 17 --color-sidebar-foreground: var(--sidebar-foreground); 18 --color-sidebar: var(--sidebar); 19 --color-chart-5: var(--chart-5); 20 --color-chart-4: var(--chart-4); 21 --color-chart-3: var(--chart-3); 22 --color-chart-2: var(--chart-2); 23 --color-chart-1: var(--chart-1); 24 --color-ring: var(--ring); 25 --color-input: var(--input); 26 --color-border: var(--border); 27 --color-destructive: var(--destructive); 28 --color-accent-foreground: var(--accent-foreground); 29 --color-accent: var(--accent); 30 --color-muted-foreground: var(--muted-foreground); 31 --color-muted: var(--muted); 32 --color-secondary-foreground: var(--secondary-foreground); 33 --color-secondary: var(--secondary); 34 --color-primary-foreground: var(--primary-foreground); 35 --color-primary: var(--primary); 36 --color-popover-foreground: var(--popover-foreground); 37 --color-popover: var(--popover); 38 --color-card-foreground: var(--card-foreground); 39 --color-card: var(--card); 40 --radius-sm: calc(var(--radius) - 4px); 41 --radius-md: calc(var(--radius) - 2px); 42 --radius-lg: var(--radius); 43 --radius-xl: calc(var(--radius) + 4px); 13 44 } 14 45 15 @media (prefers-color-scheme: dark) { 16 :root { 17 --background: #0a0a0a; 18 --foreground: #ededed; 46 :root { 47 --radius: 0.625rem; 48 --background: oklch(1 0 0); 49 --foreground: oklch(0.145 0 0); 50 --card: oklch(1 0 0); 51 --card-foreground: oklch(0.145 0 0); 52 --popover: oklch(1 0 0); 53 --popover-foreground: oklch(0.145 0 0); 54 --primary: #0272D1; 55 --primary-foreground: oklch(0.985 0 0); 56 --secondary: oklch(0.97 0 0); 57 --secondary-foreground: oklch(0.205 0 0); 58 --muted: oklch(0.97 0 0); 59 --muted-foreground: oklch(0.556 0 0); 60 --accent: oklch(0.97 0 0); 61 --accent-foreground: oklch(0.205 0 0); 62 --destructive: oklch(0.577 0.245 27.325); 63 --border: oklch(0.922 0 0); 64 --input: oklch(0.922 0 0); 65 --ring: oklch(0.708 0 0); 66 --chart-1: oklch(0.646 0.222 41.116); 67 --chart-2: oklch(0.6 0.118 184.704); 68 --chart-3: oklch(0.398 0.07 227.392); 69 --chart-4: oklch(0.828 0.189 84.429); 70 --chart-5: oklch(0.769 0.188 70.08); 71 --sidebar: oklch(0.985 0 0); 72 --sidebar-foreground: oklch(0.145 0 0); 73 --sidebar-primary: oklch(0.205 0 0); 74 --sidebar-primary-foreground: oklch(0.985 0 0); 75 --sidebar-accent: oklch(0.97 0 0); 76 --sidebar-accent-foreground: oklch(0.205 0 0); 77 --sidebar-border: oklch(0.922 0 0); 78 --sidebar-ring: oklch(0.708 0 0); 79 } 80 81 .dark { 82 --background: oklch(0.145 0 0); 83 --foreground: oklch(0.985 0 0); 84 --card: oklch(0.205 0 0); 85 --card-foreground: oklch(0.985 0 0); 86 --popover: oklch(0.205 0 0); 87 --popover-foreground: oklch(0.985 0 0); 88 --primary: oklch(0.922 0 0); 89 --primary-foreground: oklch(0.205 0 0); 90 --secondary: oklch(0.269 0 0); 91 --secondary-foreground: oklch(0.985 0 0); 92 --muted: oklch(0.269 0 0); 93 --muted-foreground: oklch(0.708 0 0); 94 --accent: oklch(0.269 0 0); 95 --accent-foreground: oklch(0.985 0 0); 96 --destructive: oklch(0.704 0.191 22.216); 97 --border: oklch(1 0 0 / 10%); 98 --input: oklch(1 0 0 / 15%); 99 --ring: oklch(0.556 0 0); 100 --chart-1: oklch(0.488 0.243 264.376); 101 --chart-2: oklch(0.696 0.17 162.48); 102 --chart-3: oklch(0.769 0.188 70.08); 103 --chart-4: oklch(0.627 0.265 303.9); 104 --chart-5: oklch(0.645 0.246 16.439); 105 --sidebar: oklch(0.205 0 0); 106 --sidebar-foreground: oklch(0.985 0 0); 107 --sidebar-primary: oklch(0.488 0.243 264.376); 108 --sidebar-primary-foreground: oklch(0.985 0 0); 109 --sidebar-accent: oklch(0.269 0 0); 110 --sidebar-accent-foreground: oklch(0.985 0 0); 111 --sidebar-border: oklch(1 0 0 / 10%); 112 --sidebar-ring: oklch(0.556 0 0); 113 } 114 115 @layer base { 116 * { 117 @apply border-border outline-ring/50; 118 } 119 body { 120 @apply text-foreground; 121 background-color: #F4FAFF; 19 122 } 20 123 } 21 22 body {23 background: var(--background);24 color: var(--foreground);25 font-family: Arial, Helvetica, sans-serif;26 } -
src/app/layout.tsx
r65f7b64 r875f7d6 2 2 import { Geist, Geist_Mono } from "next/font/google"; 3 3 import "./globals.css"; 4 import '@fortawesome/fontawesome-svg-core/styles.css'; 5 import { config } from '@fortawesome/fontawesome-svg-core'; 6 7 // Prevent FontAwesome from adding CSS automatically 8 config.autoAddCss = false; 4 9 5 10 const geistSans = Geist({ … … 14 19 15 20 export const metadata: Metadata = { 16 title: " Create Next App",17 description: " Generated by create next app",21 title: "IKnow - UKIM", 22 description: "University Managment System used to provide students informations and manage their progress.", 18 23 }; 19 24 … … 28 33 className={`${geistSans.variable} ${geistMono.variable} antialiased`} 29 34 > 30 {children}35 <div className="mx-auto max-w-6xl px-4">{children}</div> 31 36 </body> 32 37 </html> -
src/app/page.tsx
r65f7b64 r875f7d6 1 1 import Image from "next/image"; 2 import Navbar from "@/components/navbar"; 3 import Header from "@/components/header"; 4 import Exams from "@/components/exams"; 2 5 3 6 export default function Home() { 4 7 return ( 5 <div className="font-sans grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20"> 6 <main className="flex flex-col gap-[32px] row-start-2 items-center sm:items-start"> 7 <Image 8 className="dark:invert" 9 src="/next.svg" 10 alt="Next.js logo" 11 width={180} 12 height={38} 13 priority 14 /> 15 <ol className="font-mono list-inside list-decimal text-sm/6 text-center sm:text-left"> 16 <li className="mb-2 tracking-[-.01em]"> 17 Get started by editing{" "} 18 <code className="bg-black/[.05] dark:bg-white/[.06] font-mono font-semibold px-1 py-0.5 rounded"> 19 src/app/page.tsx 20 </code> 21 . 22 </li> 23 <li className="tracking-[-.01em]"> 24 Save and see your changes instantly. 25 </li> 26 </ol> 27 28 <div className="flex gap-4 items-center flex-col sm:flex-row"> 29 <a 30 className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:w-auto" 31 href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" 32 target="_blank" 33 rel="noopener noreferrer" 34 > 35 <Image 36 className="dark:invert" 37 src="/vercel.svg" 38 alt="Vercel logomark" 39 width={20} 40 height={20} 41 /> 42 Deploy now 43 </a> 44 <a 45 className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent font-medium text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 w-full sm:w-auto md:w-[158px]" 46 href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" 47 target="_blank" 48 rel="noopener noreferrer" 49 > 50 Read our docs 51 </a> 52 </div> 53 </main> 54 <footer className="row-start-3 flex gap-[24px] flex-wrap items-center justify-center"> 55 <a 56 className="flex items-center gap-2 hover:underline hover:underline-offset-4" 57 href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" 58 target="_blank" 59 rel="noopener noreferrer" 60 > 61 <Image 62 aria-hidden 63 src="/file.svg" 64 alt="File icon" 65 width={16} 66 height={16} 67 /> 68 Learn 69 </a> 70 <a 71 className="flex items-center gap-2 hover:underline hover:underline-offset-4" 72 href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" 73 target="_blank" 74 rel="noopener noreferrer" 75 > 76 <Image 77 aria-hidden 78 src="/window.svg" 79 alt="Window icon" 80 width={16} 81 height={16} 82 /> 83 Examples 84 </a> 85 <a 86 className="flex items-center gap-2 hover:underline hover:underline-offset-4" 87 href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" 88 target="_blank" 89 rel="noopener noreferrer" 90 > 91 <Image 92 aria-hidden 93 src="/globe.svg" 94 alt="Globe icon" 95 width={16} 96 height={16} 97 /> 98 Go to nextjs.org → 99 </a> 100 </footer> 101 </div> 8 <> 9 <Header></Header> 10 <Navbar></Navbar> 11 <Exams></Exams> 12 </> 102 13 ); 103 14 }
Note:
See TracChangeset
for help on using the changeset viewer.
