Transform the existing CipherForge JavaFX encryption app into a stunning, bold, minimalist portfolio-style application inspired by 9to5studio.it. The app retains its encryption/decryption functionality (Strategy pattern backend) but its entire UI/UX is reimagined with 9to5's high-contrast, architectural aesthetic. The build system is also fixed so the app runs without Maven.
| Element | Value |
|---|---|
| Primary Color | #000000 (pure black) |
| Accent Color | #E4FF00 (neon yellow-green) |
| Background | #FFFFFF (white) / #F5F5F0 (warm off-white) |
| Typography | Bold sans-serif, large scale, uppercase headings |
| Layout | Horizontal scroll homepage, vertical sidebars, split-screen project views |
| Animations | Fade transitions, scale-on-hover, smooth scene switches |
Important
Complete UI overhaul: The existing fintech-inspired dashboard design (dark sidebar, KPI cards, etc.) will be entirely replaced with the 9to5 bold-minimalist aesthetic. The backend encryption logic (Strategy pattern, AES/Caesar) remains untouched.
Important
Navigation paradigm shift: Instead of a traditional sidebar, navigation uses vertical edge labels ("Menu", "Contacts") with full-screen overlay menus, inspired by the 9to5 website.
Important
JavaFX runtime fix: A Launcher.java wrapper class and a run.bat script will be created so the app works from the terminal without Maven. IntelliJ instructions are also provided.
The "JavaFX runtime components are missing" error happens because Java 11+ removed bundled JavaFX. We fix this with:
- A
Launcher.javawrapper that callsMainApp.main()— this bypasses the JavaFX module check - A
run.batscript that compiles and runs with the correct--module-pathand--add-modulesflags
- Simple wrapper class that calls
MainApp.main(args) - This is the standard workaround for "JavaFX runtime components missing" when not using a module-info.java
- Batch script: compiles all
.javafiles with--module-pathpointing toopenjfx/javafx-sdk-26/lib - Copies FXML/CSS resources to
out/preserving directory structure - Runs
Launcherwith correct module flags - Single command:
run.bat
- Change window title to "CipherForge — 9to5 Edition"
- Load new CSS files:
studio-base.css+studio-theme.css - Load new root FXML:
StudioLayout.fxml - Set stage to undecorated or borderless for immersive feel (optional, user can decide)
- Enable stage resizing and responsive bindings
- Root
StackPane→BorderPanestructure - Left edge: Vertical "MENU" label (rotated -90°), clickable to toggle full-screen overlay
- Right edge: Vertical "CONTACTS" label (rotated 90°), clickable for contact overlay
- Center:
StackPanefor view switching with fade transitions - Default view: Home/landing with large project carousel
- Full-width hero section with studio name "CIPHERFORGE" in massive bold text
- Subtitle: "Encryption • Precision • Security"
- Animated "Scroll & Discover" prompt
- Horizontal scrolling project cards row (showing encryption tools as "projects")
- Reusable card component: large numbered index (01, 02, etc.)
- Project title, gradient overlay on hover
- Scale-up animation on hover
- Click to navigate to the corresponding tool view
- Restyled with 9to5 aesthetic: split-screen layout
- Left side: large decorative number/title and description
- Right side: algorithm selector, key input, text areas, action buttons
- Bold black/white contrast with neon accent on buttons
- Same split-screen treatment as EncryptionView
- Large "FILE OPS" header on the left
- File selection, processing on the right
- Full-screen black overlay with large, bold navigation links
- Items: HOME, ENCRYPT, FILES, SETTINGS
- Neon accent hover effect on each item
- Fade-in/fade-out animation
- Full-screen overlay with contact info, version, and team credits
- Minimal design with large typography
- Restyled to match new aesthetic
- Bold section headers, clean settings cards
- Replaced by
StudioLayout.fxml
- Dashboard is replaced by the Home/landing page
- Root controller managing view switching, overlay visibility, and animations
- Fade/translate transitions for view changes
- Menu overlay toggle logic
- Contact overlay toggle logic
- Controls the horizontal scrolling project card carousel
- Manages card click navigation events
- Entrance animations (fade-in hero text)
- No logic changes, only FXML ID adjustments if needed for the new layout
- No logic changes, only FXML ID adjustments if needed
- Replaced by
StudioController.java
- Dashboard is removed
- Complete CSS reset and component styles
- Bold typography system (large headings, uppercase transforms)
- Card, button, input, overlay styles
- Hover animations (scale, shadow, color shift)
- Vertical text rotation classes
- Scrollbar customization
- Color definitions:
#000000,#E4FF00,#FFFFFF,#F5F5F0 - All color assignments for components
- Light mode (primary) and optional dark mode toggle
- Kept for backwards compatibility but no longer loaded by default
- Kept but not loaded by default (old themes)
The following files remain completely untouched:
crypto/EncryptionStrategy.javacrypto/AESStrategy.javacrypto/CaesarStrategy.javacontext/EncryptionContext.javautil/FileHandler.javaexceptions/EncryptionException.javaexceptions/InvalidKeyException.java
cd d:\E\encryption-decryption-oopd-java
run.batThis single script:
- Compiles all
.javafiles with JavaFX module path - Copies FXML + CSS resources to
out/ - Launches the app via the
Launcherwrapper
- File → Project Structure → Libraries → Add
openjfx/javafx-sdk-26/libas a library - Run → Edit Configurations → Add VM options:
--module-path "d:\E\encryption-decryption-oopd-java\openjfx\javafx-sdk-26\lib" --add-modules javafx.controls,javafx.fxml - Set Main class to
Launcher(NOTMainApp) - Click Run
# Step 1: Compile
javac --module-path "openjfx\javafx-sdk-26\lib" --add-modules javafx.controls,javafx.fxml -d out -sourcepath src src\Launcher.java src\MainApp.java src\context\EncryptionContext.java src\crypto\AESStrategy.java src\crypto\CaesarStrategy.java src\crypto\EncryptionStrategy.java src\exceptions\EncryptionException.java src\exceptions\InvalidKeyException.java src\ui\controllers\StudioController.java src\ui\controllers\HomeController.java src\ui\controllers\EncryptionController.java src\ui\controllers\FileController.java src\ui\controllers\SettingsController.java src\util\FileHandler.java
# Step 2: Copy resources
xcopy /s /y src\ui\fxml\*.fxml out\ui\fxml\
xcopy /s /y src\ui\css\*.css out\ui\css\
# Step 3: Run
java --module-path "openjfx\javafx-sdk-26\lib" --add-modules javafx.controls,javafx.fxml -cp out LauncherImportant
- Undecorated window: Should the app use an undecorated/borderless stage for a more immersive look (like the website), or keep the standard Windows title bar? An undecorated stage requires custom close/minimize/maximize buttons.
Important
2. Generated images: Should I use the image generation tool to create architectural-style placeholder images for the project cards, or use colored rectangles/gradients?
Important
3. Horizontal scroll on homepage: The 9to5 site uses horizontal scrolling for projects. JavaFX can do this with a ScrollPane set to horizontal. Should we implement this faithfully, or use a standard vertical scrollable grid instead?
- Compile the project using
run.batand verify zero compilation errors - Launch the app and visually verify each section via browser screenshot tool
- Navigate through all sections (Home → Encrypt → Files → Settings)
- Test menu and contact overlay open/close animations
- Test encrypt/decrypt functionality with AES and Caesar
- Test file operations (browse, encrypt, save)
- Verify responsive behavior when resizing window
- Test theme switching in Settings