commit 275a7ca9279330d8ea1e1723501e41d0894f3d9a
parent 1195c6a047be15dd368534771caa950605b56dbd
Author: Amit Dutta <amitdutta4255@gmail.com>
Date: Thu, 2 Jul 2026 10:00:39 +0530
style: refine DocSearch UI, add true-black dark mode, switch to Mauve theme
- Fix DocSearch search bar, footer, and no-results screen styling
- Reposition Algolia footer branding on mobile (above dropdown, right-aligned)
- Add true black (#000000) background for dark mode
- Switch brand accent to Catppuccin Mauve (light: #8839ef, dark: #cba6f7)
- Split hero gradient into separate light/dark variants
- Fix DocSearch hit text contrast in light mode
- Reorganize extra.css with labeled sections for maintainability
- Rewrite acknowledgments and security policy copy for a more natural tone
- Update faq.md wording for consistency
- Fix Python install instructions in quickstart.md (Install Manager clarification)
Diffstat:
10 files changed, 226 insertions(+), 133 deletions(-)
diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
@@ -42,12 +42,16 @@ const vitePressConfig = {
vite: {
server: {
- allowedHosts: true as true
+ allowedHosts: true as true,
+ host: true,
}
} as any,
themeConfig: {
- logo: '/logo.svg',
+ logo: {
+ light: '/logo_light.svg',
+ dark: '/logo_dark.svg',
+ },
nav: [
{ text: 'Terms', link: '/terms'},
@@ -100,17 +104,8 @@ const vitePressConfig = {
buttonAriaLabel: 'Search programs',
},
modal: {
- searchBox: {
- clearButtonTitle: 'Clear search query',
- closeButtonText: 'clear',
-
- cancelButtonTitle: 'Close search',
- cancelButtonText: '×',
- closeButtonAriaLabel: 'Close search',
- },
noResultsScreen: {
noResultsText: 'No programs found for',
- suggestedQueryText: 'Try searching for a different problem statement',
}
}
}
diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css
@@ -1,7 +1,113 @@
+/* ==========================================================================
+ GLOBAL / BASE
+ ========================================================================== */
+
* {
-webkit-tap-highlight-color: transparent;
}
+::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+::-webkit-scrollbar-track {
+ background: transparent;
+}
+::-webkit-scrollbar-thumb {
+ background: var(--vp-c-divider);
+ border-radius: 4px;
+}
+::-webkit-scrollbar-thumb:hover {
+ background: var(--vp-c-brand-1);
+}
+
+::selection {
+ background: #a8b1ff33;
+ color: var(--vp-c-text-1);
+}
+
+
+/* ==========================================================================
+ THEME COLORS — LIGHT MODE (:root = default/light)
+ ========================================================================== */
+
+:root {
+ /* Brand */
+ --vp-c-brand-1: #8839ef;
+ --vp-c-brand-2: #7c3aed;
+ --vp-c-brand-3: #6d28d9;
+ --vp-c-brand: #8839ef;
+
+ /* Home hero gradient (light) */
+ --vp-home-hero-image-background-image: linear-gradient(
+ -45deg,
+ #8839ef 50%,
+ #a855f7 50%
+ );
+ --vp-home-hero-image-filter: blur(100px);
+ --vp-home-hero-name-color: transparent;
+ --vp-home-hero-name-background: -webkit-linear-gradient(
+ 120deg,
+ #8839ef 30%,
+ #a855f7
+ );
+
+ /* DocSearch hit colors (light) */
+ --docsearch-hit-color: #1a1a1a;
+ --docsearch-hit-active-color: #1a1a1a;
+ --docsearch-hit-background: #f3f0fb;
+
+ /* Font */
+ --vp-font-family-base: 'Lexend', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+}
+
+
+/* ==========================================================================
+ THEME COLORS — DARK MODE (.dark overrides)
+ ========================================================================== */
+
+.dark {
+ /* Backgrounds → true black */
+ --vp-c-bg: #000000;
+ --vp-c-bg-alt: #000000;
+ --vp-c-bg-elv: #000000;
+ --vp-c-bg-soft: #0a0a0a;
+ --vp-c-divider: #1a1a1a;
+
+ /* Brand */
+ --vp-c-brand-1: #cba6f7;
+ --vp-c-brand-2: #b48ead;
+ --vp-c-brand-3: #a374c4;
+ --vp-c-brand: #cba6f7;
+
+ /* Home hero gradient (dark) */
+ --vp-home-hero-image-background-image: linear-gradient(
+ -45deg,
+ #cba6f7 50%,
+ #dcc6fb 50%
+ );
+ --vp-home-hero-name-background: -webkit-linear-gradient(
+ 120deg,
+ #cba6f7 30%,
+ #dcc6fb
+ );
+
+ /* DocSearch hit colors (dark) */
+ --docsearch-hit-color: #ffffff;
+ --docsearch-hit-active-color: #ffffff;
+ --docsearch-hit-background: #1a1625;
+ --docsearch-modal-background: #000000 !important;
+}
+
+.dark ::-webkit-scrollbar-track {
+ background: var(--vp-c-bg-soft);
+}
+
+
+/* ==========================================================================
+ CUSTOM COMPONENTS — .bsc-* (file/problem cards, buttons)
+ ========================================================================== */
+
.bsc-header {
margin-bottom: 1.4rem;
}
@@ -163,67 +269,27 @@
background-color: var(--vp-c-brand-3);
}
-@media (hover: none) and (pointer: coarse) {
- .vp-doc [class*="language-"] > button.copy {
- opacity: 1 !important;
- }
-}
-
-:root {
- --vp-c-brand-1: #a8b1ff;
- --vp-c-brand-2: #8b97ff;
- --vp-c-brand-3: #6e7eff;
- --vp-c-brand: #a8b1ff;
- --vp-home-hero-image-background-image: linear-gradient(
- -45deg,
- #a8b1ff 50%,
- #dde0ff 50%
- );
- --vp-home-hero-image-filter: blur(100px);
- --vp-home-hero-name-color: transparent;
- --vp-home-hero-name-background: -webkit-linear-gradient(
- 120deg,
- #a8b1ff 30%,
- #dde0ff
- );
-
- --vp-font-family-base: 'Lexend', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
-}
-
-::-webkit-scrollbar {
- width: 8px;
- height: 8px;
-}
-::-webkit-scrollbar-track {
- background: transparent;
-}
-::-webkit-scrollbar-thumb {
- background: var(--vp-c-divider);
- border-radius: 4px;
-}
-::-webkit-scrollbar-thumb:hover {
- background: var(--vp-c-brand-1);
-}
-
-.dark ::-webkit-scrollbar-track {
- background: var(--vp-c-bg-soft);
-}
-
-::selection {
- background: #a8b1ff33;
- color: var(--vp-c-text-1);
-}
+/* ==========================================================================
+ VITEPRESS UI TWEAKS
+ ========================================================================== */
.VPFeature:hover {
border-color: var(--vp-c-brand-1) !important;
transition: border-color 0.2s;
}
-.DocSearch-NoResults-Prefill-List {
- display: none !important;
+@media (hover: none) and (pointer: coarse) {
+ .vp-doc [class*="language-"] > button.copy {
+ opacity: 1 !important;
+ }
}
+
+/* ==========================================================================
+ ALGOLIA DOCSEARCH — MODAL / SEARCH BAR / FORM
+ ========================================================================== */
+
.DocSearch-Form {
background-color: transparent !important;
border: none !important;
@@ -231,31 +297,35 @@
padding: 0 !important;
}
-.DocSearch-Reset svg {
- display: none !important;
+.DocSearch-Input {
+ font-size: 16px !important;
}
-.DocSearch-Reset::before {
- content: "clear";
- font-size: 14px;
- font-weight: 500;
- color: #5468ff;
+.DocSearch-MagnifierLabel svg {
+ width: 18px !important;
+ height: 18px !important;
}
-.DocSearch-Reset::after {
- content: "|";
- font-size: 14px;
- color: var(--docsearch-muted-color);
- margin: 0 8px;
+.DocSearch-SearchBar {
+ padding-top: 1px !important;
+ padding-bottom: 1px !important;
+ border-bottom: 1px solid var(--vp-c-divider) !important;
}
-.DocSearch-Cancel {
- font-size: 20px !important;
- display: block !important;
- color: #5468ff !important;
- background: none !important;
- padding-left: 0 !important;
- line-height: 1 !important;
+@media (min-width: 768px) {
+ .DocSearch-Modal {
+ max-width: 800px !important;
+ width: 100% !important;
+ }
+}
+
+
+/* ==========================================================================
+ ALGOLIA DOCSEARCH — RESULTS / HITS
+ ========================================================================== */
+
+.DocSearch-Dropdown {
+ padding-top: 2px !important;
}
.DocSearch-Hit[aria-selected="true"] a {
@@ -265,12 +335,10 @@
}
.DocSearch-Hit a:hover {
- background-color: var(--vp-c-brand-soft) !important;
+ background-color: var(--vp-c-brand-soft) !important;
+ color: var(--vp-c-text-1) !important;
}
-.DocSearch-Input {
- font-size: 16px !important;
-}
.DocSearch-Hit-title {
font-size: 14px !important;
}
@@ -283,24 +351,49 @@
font-size: 12px !important;
}
-.DocSearch-MagnifierLabel svg {
- width: 16px !important;
- height: 16px !important;
-}
-.DocSearch-SearchBar {
- padding-top: 1px !important;
- padding-bottom: 1px !important;
- border-bottom: 1px solid var(--vp-c-divider) !important;
-}
+/* ==========================================================================
+ ALGOLIA DOCSEARCH — NO RESULTS SCREEN
+ ========================================================================== */
-.DocSearch-Dropdown {
- padding-top: 2px !important;
+.DocSearch-NoResults-Prefill-List {
+ display: none !important;
}
-@media (min-width: 768px) {
+
+/* ==========================================================================
+ ALGOLIA DOCSEARCH — MOBILE LAYOUT (footer above dropdown, right-aligned)
+ ========================================================================== */
+
+@media (max-width: 767px) {
.DocSearch-Modal {
- max-width: 800px !important;
- width: 100% !important;
+ display: flex !important;
+ flex-direction: column !important;
+ }
+
+ .DocSearch-SearchBar {
+ order: 1 !important;
+ }
+
+ .DocSearch-Footer {
+ display: flex !important;
+ justify-content: flex-end !important;
+ align-items: center !important;
+ order: 2 !important;
+ position: static !important;
+ width: auto !important;
+ box-shadow: none !important;
+ border-top: none !important;
+ border-bottom: 1px solid var(--vp-c-divider) !important;
+ padding: 8px 16px !important;
+ }
+
+ .DocSearch-Dropdown {
+ order: 3 !important;
+ flex: 1 !important;
+ }
+
+ .DocSearch-Logo {
+ margin-left: auto !important;
}
}
\ No newline at end of file
diff --git a/docs/SECURITY.md b/docs/SECURITY.md
@@ -6,8 +6,8 @@ title: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="
## Reporting a Vulnerability or Code Error
-While this is a personal learning project, if you discover a security vulnerability in any of the code, I would appreciate it if you could bring it to my attention.
+While this is a personal learning project, if you find a security issue in any of the code, please let me know.
-Please report vulnerabilities or Errors by opening a new issue on the repository. Please provide as much detail as possible in your report, including the steps to reproduce the vulnerability and to solve the error.
+You can report vulnerabilities or errors by opening a new issue on the repository. Please include as much detail as you can — steps to reproduce, and what a fix might look like if you have one in mind.
-Thank you for helping to improve the quality of my work.-
\ No newline at end of file
+Thanks for helping improve the quality of my work.+
\ No newline at end of file
diff --git a/docs/credits.md b/docs/credits.md
@@ -4,12 +4,13 @@ title: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="
# Acknowledgments
-Building and maintaining a fast, open-source code index requires reliable and accessible infrastructure. I would like to extend my sincere gratitude to the following platforms, communities, and open-source projects that make `code.amit.is-a.dev` possible:
+`code.amit.is-a.dev` only exists because of some genuinely great free and open-source tools. Thanks to:
-* **[is-a.dev](https://is-a.dev)**: For providing the sleek, developer-centric domain name completely free of charge, giving this project a professional home.
-* **[Hugging Face](https://huggingface.co)**: For securely and reliably storing the extensive collection of raw programming files.
-* **[Cloudflare](https://www.cloudflare.com/)**: For handling the backend routing, DNS, and caching, seamlessly bridging the domain to ensure Hugging Face serves the code files swiftly and securely.
-* **[GitHub](https://github.com/) & [GitHub Pages](https://pages.github.com/)**: For securely storing the entire open-source repository (including all code and markdown files) and providing lightning-fast, dependable web hosting for the compiled site.
-* **[VitePress](https://vitepress.dev/)**: The phenomenal foundational frameworks that effortlessly transform raw Markdown files and code snippets into the beautiful, searchable, and highly responsive user interface you see today.
+* **[is-a.dev](https://is-a.dev)** — for the free subdomain that gave this project a home.
+* **[Hugging Face](https://huggingface.co)** — for hosting all the raw program files.
+* **[Cloudflare](https://www.cloudflare.com/)** — for DNS, routing, and caching, connecting the domain to Hugging Face so files load fast and reliably.
+* **[GitHub](https://github.com/) & [GitHub Pages](https://pages.github.com/)** — for hosting the repo (code + markdown) and serving the site itself.
+* **[VitePress](https://vitepress.dev/)** — for turning a pile of markdown and code into an actual searchable, readable site.
+* **[Algolia DocSearch](https://docsearch.algolia.com/)** — for the instant search that makes finding a program actually painless.
-This project thrives thanks to the generosity of these free-tier services and the incredible work of the open-source community.-
\ No newline at end of file
+All free-tier services, all doing a lot of heavy lifting. If you're building something similar, every one of these is worth checking out.+
\ No newline at end of file
diff --git a/docs/faq.md b/docs/faq.md
@@ -16,53 +16,53 @@ A live archive of BSc Computer Science practical codes following the WBSU curric
On GitHub: https://github.com/notamitgamer/bsc
### 4. Can I use this code?
-Yes, under the MIT License.
+Yes, it's under the MIT License — use it freely.
### 5. Can I copy this for assignments?
-No. You should understand and rewrite the logic.
+No. Read it, understand it, then write your own version.
## Metadata
### 6. What is "Author"?
-The person who wrote the code.
+The person credited with writing that particular file — usually the original student contributor.
### 7. What is "Repo"?
-The original source repository of the file.
+The GitHub repository the file originally came from.
### 8. What is "License"?
-It defines how the code can be used.
+The terms under which you're allowed to use, copy, or modify the code.
## Usage
### 9. Can I print the code?
-Yes. Use the **Raw** button and print from your browser.
+Yes — use the **Raw** button, then print from your browser.
### 10. Can I reuse this in projects?
-Yes, but follow the license terms.
+Yes, as long as you follow the license terms.
### 11. Can I modify the code?
-Yes. You are encouraged to experiment and improve.
+Yes, go for it — experimenting and improving is encouraged.
## Academic Integrity
### 12. What is academic integrity?
-It means doing your own work honestly.
+Doing your own work, honestly — no shortcuts.
### 13. Is copying allowed?
-No. Copying without understanding is discouraged.
+No. Copying without understanding defeats the point.
### 14. What should I do instead?
- Read the code
- Understand the logic
-- Rewrite it yourself
+- Rewrite it yourself, from scratch
## Technical
### 15. Why is something missing?
-The project is continuously updated.
+The project is still growing — not everything is uploaded yet.
### 16. How often is it updated?
-As the academic journey progresses.
+Roughly in step with the academic term as it progresses.
### 17. Where can I report issues?
On GitHub Issues: https://github.com/notamitgamer/bsc/issues
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
@@ -16,7 +16,8 @@ hero:
text: Browse all Sem
link: .#roadmap-progress
image:
- src: /logo_large.svg
+ light: /logo_light.svg
+ dark: /logo_dark.svg
alt: logo
features:
@@ -63,9 +64,12 @@ Currently navigating **Semester 2**. Folders for future semesters are placeholde
### Python Development
-1. Download Python `>= v3.x.x`: [Python v3.14.5 original (45 MB)](https://www.python.org/ftp/python/pymanager/python-manager-26.2.msix)
-2. Run the installer, ensure you check "Add python.exe to PATH", and complete the setup
-3. Verify with python `--version` in your terminal
+1. Download the Python Install Manager: [python-manager-26.2.msix (2 MB)](https://www.python.org/ftp/python/pymanager/python-manager-26.2.msix)
+2. Run the installer, then open a terminal and run:
+```bash
+ py install 3.14
+```
+3. Verify with `python --version` or `py --version` in your terminal
### R Programming
diff --git a/docs/public/logo.svg b/docs/public/logo.svg
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="#a8b1ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open-text-icon lucide-book-open-text"><path d="M12 7v14"/><path d="M16 12h2"/><path d="M16 8h2"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/><path d="M6 12h2"/><path d="M6 8h2"/></svg>-
\ No newline at end of file
diff --git a/docs/public/logo_dark.svg b/docs/public/logo_dark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" viewBox="0 0 24 24" fill="none" stroke="#cba6f7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open-text-icon lucide-book-open-text"><path d="M12 7v14"/><path d="M16 12h2"/><path d="M16 8h2"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/><path d="M6 12h2"/><path d="M6 8h2"/></svg>+
\ No newline at end of file
diff --git a/docs/public/logo_large.svg b/docs/public/logo_large.svg
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" viewBox="0 0 24 24" fill="none" stroke="#a8b1ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open-text-icon lucide-book-open-text"><path d="M12 7v14"/><path d="M16 12h2"/><path d="M16 8h2"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/><path d="M6 12h2"/><path d="M6 8h2"/></svg>-
\ No newline at end of file
diff --git a/docs/public/logo_light.svg b/docs/public/logo_light.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" viewBox="0 0 24 24" fill="none" stroke="#8839ef" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open-text-icon lucide-book-open-text"><path d="M12 7v14"/><path d="M16 12h2"/><path d="M16 8h2"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/><path d="M6 12h2"/><path d="M6 8h2"/></svg>+
\ No newline at end of file