# VANILLA.md
## STACK
REQUIRED
- HTML5
- CSS3
- JavaScript ES2024
USE_DECLARED_STACK_ONLY
DO_NOT_INTRODUCE_FRAMEWORKS
DO_NOT_INTRODUCE_BUILD_TOOLS
DO_NOT_INTRODUCE_PACKAGE_MANAGERS
---
## PROJECT_STRUCTURE
```text
/
├── index.html
├── css/
│ └── styles.css
├── js/
│ └── main.js
├── images/
└── assets/
```
THIS_STRUCTURE_IS_AUTHORITATIVE
DO_NOT_CREATE_ADDITIONAL_TOP_LEVEL_DIRECTORIES
PREFER_EXISTING_DIRECTORIES_OVER_NEW_ONES
---
## FILE_PLACEMENT
html_pages -> repository_root
stylesheets -> css
javascript -> js
images -> images
static_assets -> assets
DO_NOT_CREATE_SRC_DIRECTORY
DO_NOT_CREATE_COMPONENT_DIRECTORIES
DO_NOT_CREATE_BUILD_DIRECTORIES
---
## HTML_RULES
USE_SEMANTIC_HTML
PREFER_NATIVE_HTML_ELEMENTS
USE_PROPER_HEADING_HIERARCHY
REQUIRE_ALT_TEXT_FOR_IMAGES
AVOID_UNNECESSARY_DIV_ELEMENTS
---
## CSS_RULES
USE_PLAIN_CSS
STORE_GLOBAL_STYLES_IN_CSS_STYLES_CSS
DO_NOT_USE_SCSS
DO_NOT_USE_SASS
DO_NOT_USE_LESS
DO_NOT_USE_CSS_MODULES
DO_NOT_USE_CSS_IN_JS
DO_NOT_INTRODUCE_STYLING_FRAMEWORKS
---
## JAVASCRIPT_RULES
USE_VANILLA_JAVASCRIPT
USE_ES_MODULES_WHEN_NEEDED
PREFER_MODERN_BROWSER_APIS
DO_NOT_USE_JQUERY
DO_NOT_USE_REACT
DO_NOT_USE_VUE
DO_NOT_USE_ANGULAR
DO_NOT_USE_SVELTE
DO_NOT_USE_ALPINE
DO_NOT_USE_HTMX
---
## ASSET_RULES
IMAGES_BELONG_IN_IMAGES
FONTS_BELONG_IN_ASSETS
ICONS_BELONG_IN_ASSETS
DOWNLOADABLE_FILES_BELONG_IN_ASSETS
DO_NOT_STORE_ASSETS_IN_CSS_OR_JS_DIRECTORIES
---
## RESPONSIVE_RULES
MOBILE_FIRST
RESPONSIVENESS_IS_REQUIRED
REQUIRE_RESPONSIVE_LAYOUTS
REQUIRE_RESPONSIVE_TYPOGRAPHY
REQUIRE_RESPONSIVE_IMAGES
REQUIRE_FLEXIBLE_LAYOUTS
AVOID_FIXED_WIDTH_LAYOUTS
AVOID_HORIZONTAL_SCROLLING
TEST_COMMON_VIEWPORT_SIZES
RESPONSIVE_BEHAVIOR_OVERRIDES_DESKTOP_PREFERENCES
---
## ACCESSIBILITY_RULES
ACCESSIBILITY_IS_REQUIRED
REQUIRE_PROPER_HEADING_HIERARCHY
REQUIRE_ALT_TEXT
REQUIRE_KEYBOARD_ACCESSIBILITY
REQUIRE_SUFFICIENT_COLOR_CONTRAST
ACCESSIBILITY_OVERRIDES_VISUAL_PREFERENCES
---
## PERFORMANCE_RULES
MINIMIZE_JAVASCRIPT
MINIMIZE_DEPENDENCIES
OPTIMIZE_IMAGES
PREFER_NATIVE_BROWSER_FEATURES
AVOID_UNNECESSARY_ABSTRACTIONS
---
## FORBIDDEN_TOOLS
- React
- Vue
- Angular
- Svelte
- Next.js
- Nuxt
- Astro
- Vite
- Webpack
- Parcel
- Rollup
- jQuery
DO_NOT_INTRODUCE_FORBIDDEN_TOOLS
UNLESS_EXPLICITLY_REQUESTED
---
## ROOT_DIRECTORY_POLICY
ROOT_HTML_FILES_ARE_ALLOWED
DO_NOT_CREATE_CONFIGURATION_FILES
DO_NOT_CREATE_PACKAGE_JSON
DO_NOT_CREATE_NODE_MODULES
DO_NOT_CREATE_BUILD_CONFIGURATIONS
---
## GENERATION_POLICY
BEFORE_CREATING_ANY_FILE
1. CHECK_EXISTING_STRUCTURE
2. CHECK_EXISTING_PATTERNS
3. REUSE_BEFORE_CREATING
PREFER_MODIFICATION_OVER_CREATION
DO_NOT_INVENT_ARCHITECTURE
DO_NOT_INTRODUCE_FRAMEWORKS
WHEN_UNCERTAIN
FOLLOW_EXISTING_CODEBASE
---
## VANILLA_PRINCIPLES
HTML_FIRST
CSS_SECOND
JAVASCRIPT_WHEN_NEEDED
USE_NATIVE_BROWSER_FEATURES
MOBILE_FIRST
RESPONSIVE_BY_DEFAULT
KEEP_IT_SIMPLE
AVOID_DEPENDENCIES
DO_NOT_INTRODUCE_FRAMEWORKS Document
VANILLA.md
ReplWorks에서 제공하는 VANILLA.md framework 파일