added rounded

This commit is contained in:
liyunze 2026-09-01 16:00:25 +08:00
parent 4135cdca3a
commit 2bb6c09b5e
6 changed files with 3333 additions and 3173 deletions

View file

@ -13,76 +13,86 @@
// If the loader is already loaded, just stop. // If the loader is already loaded, just stop.
if (!self.define) { if (!self.define) {
let registry = {}; let registry = {};
// Used for `eval` and `importScripts` where we can't get script URL by other means. // Used for `eval` and `importScripts` where we can't get script URL by other means.
// In both cases, it's safe to use a global var because those functions are synchronous. // In both cases, it's safe to use a global var because those functions are synchronous.
let nextDefineUri; let nextDefineUri;
const singleRequire = (uri, parentUri) => { const singleRequire = (uri, parentUri) => {
uri = new URL(uri + ".js", parentUri).href; uri = new URL(uri + ".js", parentUri).href;
return registry[uri] || ( return (
registry[uri] ||
new Promise(resolve => { new Promise((resolve) => {
if ("document" in self) { if ("document" in self) {
const script = document.createElement("script"); const script = document.createElement("script");
script.src = uri; script.src = uri;
script.onload = resolve; script.onload = resolve;
document.head.appendChild(script); document.head.appendChild(script);
} else { } else {
nextDefineUri = uri; nextDefineUri = uri;
importScripts(uri); importScripts(uri);
resolve(); resolve();
} }
}) })
.then(() => {
let promise = registry[uri];
if (!promise) {
throw new Error(`Module ${uri} didnt register its module`);
}
return promise;
})
);
};
self.define = (depsNames, factory) => { .then(() => {
const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href; let promise = registry[uri];
if (registry[uri]) { if (!promise) {
// Module is already loading or loaded. throw new Error(`Module ${uri} didnt register its module`);
return; }
} return promise;
let exports = {}; })
const require = depUri => singleRequire(depUri, uri); );
const specialDeps = { };
module: { uri },
exports, self.define = (depsNames, factory) => {
require const uri =
}; nextDefineUri ||
registry[uri] = Promise.all(depsNames.map( ("document" in self ? document.currentScript.src : "") ||
depName => specialDeps[depName] || require(depName) location.href;
)).then(deps => { if (registry[uri]) {
factory(...deps); // Module is already loading or loaded.
return exports; return;
}); }
}; let exports = {};
const require = (depUri) => singleRequire(depUri, uri);
const specialDeps = {
module: { uri },
exports,
require,
};
registry[uri] = Promise.all(
depsNames.map((depName) => specialDeps[depName] || require(depName)),
).then((deps) => {
factory(...deps);
return exports;
});
};
} }
define(['./workbox-7e5eb42b'], (function (workbox) { 'use strict'; define(["./workbox-7e5eb42b"], function (workbox) {
"use strict";
self.skipWaiting(); self.skipWaiting();
workbox.clientsClaim(); workbox.clientsClaim();
/** /**
* The precacheAndRoute() method efficiently caches and responds to * The precacheAndRoute() method efficiently caches and responds to
* requests for URLs in the manifest. * requests for URLs in the manifest.
* See https://goo.gl/S9QRab * See https://goo.gl/S9QRab
*/ */
workbox.precacheAndRoute([{ workbox.precacheAndRoute(
"url": "/", [
"revision": "0.or5ntbjovsg" {
}], {}); url: "/",
workbox.cleanupOutdatedCaches(); revision: "0.or5ntbjovsg",
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/"), { },
allowlist: [/^\/$/] ],
})); {},
);
})); workbox.cleanupOutdatedCaches();
workbox.registerRoute(
new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/"), {
allowlist: [/^\/$/],
}),
);
});

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta <meta
name="description" name="description"
content="DSEC Notebook — a resource hub for Deakin University students. Shared study notes, questions and answers for SIT and Mathematics units." content="A resource hub for Deakin University students. Shared study notes, questions and answers for SIT and Mathematics units."
/> />
<meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" />

View file

@ -107,7 +107,7 @@
bind:value={searchQuery} bind:value={searchQuery}
placeholder="Search" placeholder="Search"
aria-label="Search notes and questions" aria-label="Search notes and questions"
class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-40 rounded-none border px-2.5 py-1.5 text-[11px] tracking-wide transition-colors outline-none" class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-40 rounded-sm border px-2.5 py-1.5 text-[11px] tracking-wide transition-colors outline-none"
/> />
</form> </form>
</nav> </nav>
@ -137,7 +137,7 @@
bind:value={searchQuery} bind:value={searchQuery}
placeholder="Search" placeholder="Search"
aria-label="Search notes and questions" aria-label="Search notes and questions"
class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-full rounded-none border px-3 py-2 text-sm tracking-wide transition-colors outline-none" class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-full rounded-sm border px-3 py-2 text-sm tracking-wide transition-colors outline-none"
/> />
</form> </form>
<a href="/notes" class="nav-link block" onclick={() => (mobileMenuOpen = false)} <a href="/notes" class="nav-link block" onclick={() => (mobileMenuOpen = false)}

View file

@ -19,7 +19,7 @@
</script> </script>
<svelte:head> <svelte:head>
<title>Notebook — written by students</title> <title>DSEC Notebook</title>
</svelte:head> </svelte:head>
<div class="page"> <div class="page">
@ -47,11 +47,11 @@
{:else if error} {:else if error}
<p class="kicker">{error}</p> <p class="kicker">{error}</p>
{:else} {:else}
<div class="grid grid-cols-1 sm:grid-cols-2"> <div class="grid grid-cols-1 sm:grid-cols-2 sm:gap-x-5">
{#each units as unit} {#each units as unit}
<a <a
href="/units/{unit.code}" href="/units/{unit.code}"
class="group border-rule flex items-baseline justify-between gap-4 border-b px-5 py-3" class="group border-rule flex items-baseline justify-between gap-4 border-b py-3"
> >
<span class="text-ink group-hover:text-primary font-serif text-lg" <span class="text-ink group-hover:text-primary font-serif text-lg"
>{unit.code}{unit.code2 ? ` / ${unit.code2}` : ""}</span >{unit.code}{unit.code2 ? ` / ${unit.code2}` : ""}</span

View file

@ -89,23 +89,23 @@ button {
} }
.btn-primary { .btn-primary {
@apply border-primary bg-primary hover:brightness-110 inline-flex items-center justify-center rounded-none border px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] text-white uppercase transition-colors disabled:cursor-not-allowed disabled:opacity-50; @apply border-primary bg-primary inline-flex items-center justify-center rounded-sm border px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] text-white uppercase transition-colors hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-50;
} }
.btn-secondary { .btn-secondary {
@apply border-secondary text-secondary hover:bg-secondary hover:text-on-primary inline-flex items-center justify-center rounded-none border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors disabled:cursor-not-allowed disabled:opacity-50; @apply border-secondary text-secondary hover:bg-secondary hover:text-on-primary inline-flex items-center justify-center rounded-sm border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors disabled:cursor-not-allowed disabled:opacity-50;
} }
.btn-ghost { .btn-ghost {
@apply border-ink text-ink hover:border-primary hover:text-primary inline-flex items-center justify-center rounded-none border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors; @apply border-ink text-ink hover:border-primary hover:text-primary inline-flex items-center justify-center rounded-sm border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors;
} }
.field { .field {
@apply border-rule text-ink placeholder:text-faint focus:border-primary bg-surface block w-full rounded-none border px-3 py-2.5 text-sm transition-colors outline-none; @apply border-rule text-ink placeholder:text-faint focus:border-primary bg-surface block w-full rounded-sm border px-3 py-2.5 text-sm transition-colors outline-none;
} }
.chip { .chip {
@apply border-rule text-ink hover:border-ink bg-surface inline-flex items-center rounded-none border px-3 py-1.5 font-sans text-[11px] font-medium tracking-[0.12em] uppercase transition-colors; @apply border-rule text-ink hover:border-ink bg-surface inline-flex items-center rounded-sm border px-3 py-1.5 font-sans text-[11px] font-medium tracking-[0.12em] uppercase transition-colors;
} }
.chip-active { .chip-active {