This System Requirements Document describes stillroom, an online study website for people taking A-level STEM subjects. Its purpose is to provide a welcoming, 8-bit virtual library where students can study together.
The requester, Casta, has an existing functioning website and wants the library implemented within it. The site is built with Next.js, and the existing project includes pages.tsx, layout.tsx, and globals.css. The implementation must fit into that project rather than replace it. The requester has no coding knowledge, so the implementation should preserve the existing site and be straightforward to use.
stillroom is a web experience with two current pages: Landing, the public entry point, and Library, the shared virtual study space. A-level STEM students are the intended users. The accepted product behavior is to introduce the virtual library, let visitors enter it, and provide a library environment for studying together.
The supplied reference depicts a detailed top-down library with stone flooring, wooden shelves, distinct study areas, warm lamps, and student figures. It is a visual reference, not a source of additional product features. The library should evoke its layout and pixel-art character without implying that the original image itself is available as a reusable asset.
The provisioned application infrastructure consists of a React frontend, a shared FastAPI backend, and a MariaDB database. These are implementation resources, not additional product capabilities. The site must be integrated into the requester’s existing Next.js project; the existing project files and functioning website must not be replaced.
Landing is anonymously accessible and provides the entry to Library. Library is also specified with no access requirement; no sign-in, account, or permission system is part of the accepted scope. Students enter the library and study together. The source does not specify particular study tools, subject-selection controls, chat, scheduling, or persistent study records, so these are not assumed.
The current delivery is limited to the Landing and Library pages and the shared study experience described here. The reference image informs visual treatment only. The existing React, FastAPI, and MariaDB services are retained; use of the backend or database for unspecified features is not required.
As an A-level STEM student, I should be able to understand what stillroom offers from the Landing page.
Provenance: explicit — the product is an online study website for A-level STEM students, with an 8-bit virtual library for studying together.
Lifecycle and access: On anonymous arrival at Landing, the student sees a concise introduction to the shared virtual library.
Observable acceptance: The page identifies the intended study context and presents the library as a place to study together.
Failure and continuation: If the page’s library illustration is unavailable, a closely matching pixel-art asset is recovered or created; the student can still use the entry action.
As an A-level STEM student, I should be able to enter the virtual library from Landing.
Provenance: explicit — Landing and Library are required pages, and the Landing page routes visitors into the library.
Lifecycle and access: From the anonymously accessible Landing page, the student activates “Enter the library” and arrives at Library without an account prerequisite.
Observable acceptance: Library opens and presents the shared virtual study space.
Failure and continuation: If navigation fails, the student can retry the entry action from Landing.
As an A-level STEM student, I should be able to study together with other people in the virtual library.
Provenance: explicit — people can study together in a virtual library on the site.
Lifecycle and access: A student enters the anonymously accessible Library page and uses it as a shared study space. Other students can enter the same virtual library and study there as well.
Observable acceptance: The Library presents a shared virtual library environment for students to study together.
Failure and continuation: If the library scene fails to load, the scene is recovered or replaced with a closely matching pixel-art asset; the student can continue in the Library. The source does not specify a separate participant invitation, communication, or study-session control.
As the site owner / builder, I should be able to add the library to my existing functioning Next.js website without replacing it.
Provenance: explicit — the requester has a functioning website, uses Next.js, and asks for the library to be implemented into that existing site.
Lifecycle and access: The implementation is integrated with the existing project, including pages.tsx, layout.tsx, and globals.css as applicable.
Observable acceptance: The existing site remains in place and the Landing and Library pages work within it.
Failure and recovery: If integration disrupts the existing site, restore the existing behavior and correct the integration before delivery.
Continuation: The site owner can continue using the existing project and its established structure.
Provenance: explicit. The requester identifies people taking STEM subjects at A-level as the target audience.
The student comes to stillroom to study STEM subjects alongside other people in a welcoming virtual library. Their accepted responsibilities are to understand the site’s purpose, enter the library from Landing, and use the shared library environment for studying together. Their key decision in the accepted flow is whether to enter the library. Success is reaching the Library page and finding a shared study space. The source does not specify particular subjects, study tools, or interaction methods between students.
Provenance: required_inference from the requester’s stated implementation context and request. The requester has no coding knowledge, already has a functioning website, and asks for the library to be implemented into it.
The site owner’s goal is to add the library without replacing the existing Next.js site. Their accepted responsibility is to integrate the Landing and Library pages into the existing project, using its current files and preserving its functioning behavior. Success is a working library experience within the existing website. This role is distinct from the student: it concerns implementation and preservation of the site, not studying in the library.
pages.tsx, layout.tsx, and globals.css files.The visual direction is a pixel-built study world: welcoming, warm, and recognizably inspired by the supplied top-down library image. The image is a visual reference; its specific asset is not assumed to be available.
#24252B, surface #373238, text #F4E8D2, primary #E08B52, accent #D7C36A, and muted #9A8C79. Use charcoal stone for the page ground, warm dark timber for panels, cream for readable text, terracotta for the main action and active study areas, and muted gold for lamps, status, and small highlights. Use green in the library artwork for reading areas.Make Landing feel like entering the pixel-art library rather than a conventional software landing page. Place a short cream Press Start 2P headline on a solid timber signboard above a wide, top-down library illustration. Frame the scene with stepped charcoal-stone borders and include shelves, study tables, computer desks, warm lamps, and small student figures. Place a chunky-outline terracotta “Enter the library” button directly beneath the scene, with a minimum 44px target and a one-pixel press-down state. Use small gold lamp and room-status pixels as restrained wayfinding details. At mobile width, stack the sign, scene, and control, wrapping the headline rather than clipping it. This concept uses only the accepted introduction, library scene, and entry action.
Interaction Model: Animated
Motion Tempo: restrained
Hero Dimensionality: flat
explicit: The library must be implemented in the requester’s existing functioning Next.js website, not as a replacement. Preserve the existing project and its working behavior.explicit: At 375px, 768px, and 1280px, readable text and controls must remain fully visible within the viewport and their containers. Wrap or scale content as needed; do not let other elements cover text or controls.explicit: At 375px, the library scene may scale or scroll within its own labeled viewport. At wider specified widths, expand it without covering important details.explicit: Honor prefers-reduced-motion with a static scene and fully usable controls.explicit: Use an 8-bit pixel-art style inspired by the supplied library reference, with the specified warm, dark palette and library imagery. If the original asset is unavailable, recover or create a closely matching asset rather than implying the reference can be reproduced exactly.explicit: The requester has no coding knowledge and an existing functioning site. Integrate into the existing project rather than requiring a replacement project.pages.tsx, layout.tsx, and globals.css are the named files to fit into as applicable. Preserve the existing website and project structure.pages.tsx, layout.tsx, and globals.css open. The implementation must fit the existing project.
An 8-bit virtual library for A-level STEM students. Pull up a chair, find a study area, and work alongside other people who are studying too.

An 8-bit virtual library for A-level STEM students. Pull up a chair, find a study area, and work alongside other people who are studying too.
No comments yet. Be the first!