The Layout Optimizer is a professional cutting optimization tool designed to maximise the efficiency of cutting operations by minimising material waste with instantly optimized layouts.
When you first open the Layout Optimizer, you'll see these main areas:
Before creating your first layout, understand these essential concepts:
Let's create your first optimized layout using a simple upholstery example.
Note: The template job provides example data so you can immediately see how the optimizer works.
For this example, we'll use upholstery fabric:
Why these settings?: Upholstery fabric typically comes in 140cm width rolls. Unlike woodworking, there's no saw blade to account for (kerf = 0). The 45° stripe ensures pattern consistency.
Note: We're starting fresh so you can learn the complete process.
Look at the layout visualization:
Check the cut list:
Pro Tip: The automatic optimization is usually best, but manual adjustment gives you complete control for special requirements.
By the end of this guide, you should be able to:
✅ Understand what the Layout Optimizer does - Minimizes cutting waste with instant optimization
✅ Navigate the interface confidently - Know where to find material settings, cut list, and controls
✅ Create a new job - Set up project details and switch between jobs
✅ Configure material settings - Choose appropriate presets and understand the options
✅ Add panels to your cut list - Enter dimensions and quantities accurately
✅ Run optimization - Generate efficient layouts automatically
✅ Interpret the results - Understand efficiency percentages and material calculations
✅ Make basic adjustments - Drag panels manually when needed
✅ Save and navigate - Switch between jobs and pages confidently
Now that you've mastered the basics, you're ready to explore more advanced features:
Time to complete: 5-10 minutes for first job
Result: Professional cutting layout with minimized waste and clear documentation.
Target: Users managing multiple projects
Content: Creating, editing, organizing, and switching between jobs
Key Learning: Efficient project organization and data management
The Job Manager is your central hub for organizing all cutting projects. It provides a comprehensive view of your work, from initial quotes to completed jobs.
job-manager.htmlWhen you open Job Manager, you'll see:
Each job displays as a card containing:
Standard Job Card Example:
#003 - Wilson Kitchen
Client: Wilson Family
Project: Kitchen Cabinet Doors
Description: 12 raised panel doors for kitchen renovation
Start: 15/08/2024 Due: 29/08/2024
[Edit] [Switch] [Duplicate] [Delete]
Template Job Card:
#000 - Template Job
Client: Template Client
Project: Template Project
Description: Template for creating new jobs
Start: --/--/---- Due: --/--/----
[Edit] [Switch] [Duplicate] [Delete]
This is the fastest way to start a new project:
When to use: Starting completely new projects, different material types
Perfect for similar projects or repeat clients:
When to use: Repeat clients, similar projects, seasonal work
Client Names:
Project Names:
Job Descriptions:
All job information can be edited directly from the Job Manager interface.
For complex job modifications:
The search system helps you find jobs quickly across large project lists.
By Client Type:
By Project Category:
By Status:
This is one of the most powerful time-saving features:
⚠️ Important: Deletion is permanent and cannot be undone.
By the end of this guide, you should be able to:
✅ Access Job Manager confidently - Navigate from any page and understand the interface
✅ Create new jobs efficiently - Use both template and duplication methods appropriately
✅ Edit job details accurately - Update client, project, and date information inline
✅ Search and organize jobs - Find specific projects quickly using search functionality
✅ Manage job lifecycle - Duplicate, modify, and delete jobs as needed
✅ Implement backup practices - Export important job data before deletion
✅ Follow naming conventions - Use consistent, professional project naming
✅ Handle multiple projects - Organize and manage large numbers of jobs effectively
Initial Setup:
Workflow:
Situation: Client returns for matching ottoman to previous sofa project
Workflow:
Situation: Restaurant chain ordering identical booth seating for 5 locations
Workflow:
Now that you've mastered job management, you're ready for:
1. Job Manager → "Create Job" → Edit details → Switch to job
1. Job Manager → Find job → "Duplicate" → Edit details → Switch if needed
1. Job Manager → Search bar → Type client/project/ID → Select job
1. Job Manager → Click any field → Type changes → Click away to save
1. Job Manager → Export data first → "Delete" → Confirm
Time to master: 15-20 minutes
Result: Efficient multi-project organization with professional job tracking
Target: Users working with different materials (fabric, plywood, foam)
Content: Material presets, custom dimensions, kerf settings, grain/stripe orientation
Key Learning: Proper material configuration for accurate optimization
The Layout Optimizer includes three built-in material presets, each optimized for different cutting scenarios. Understanding when and how to use each preset is crucial for accurate results.
Default Settings:
When to Use:
Why These Settings:
Default Settings:
When to Use:
Why These Settings:
Default Settings:
When to Use:
Why These Settings:
Quick Selection Guide:
While presets cover most common scenarios, you may need custom settings for specific materials or non-standard sheet sizes.
Custom Leather (150cm wide rolls):
Custom Plywood (200×100cm sheets):
Wide Format Fabric (180cm rolls):
Kerf is the width of material removed by the cutting tool. Proper kerf settings ensure your pieces fit together correctly.
Material direction affects both strength and appearance. Understanding orientation prevents costly mistakes.
0° Grain (Along Length):
90° Grain (Across Width):
No Grain/Stripe:
Stripe 0° (Along Length):
Stripe 45° (Diagonal):
Stripe 90° (Across Width):
The Layout Optimizer supports both centimeter and millimeter units. Consistent unit usage throughout your project is essential for accurate results.
The "Update Length" feature automatically calculates the minimum material length needed based on your current panel layout. This is particularly useful for roll materials like fabric.
Different materials require different approaches to achieve optimal results. Understanding these workflows helps you work efficiently with each material type.
By the end of this guide, you should be able to:
✅ Select appropriate material presets - Choose Fabric, Plywood, or Foam based on your project needs
✅ Configure custom materials accurately - Set width, length, kerf, and grain direction for non-standard materials
✅ Understand kerf impact - Know when and how to use kerf settings for accurate cutting compensation
✅ Manage grain and stripe orientation - Set material direction for strength and appearance consistency
✅ Work with both unit systems - Switch between cm and mm confidently and maintain consistency
✅ Use dynamic length calculation - Optimize material usage with auto-calculated lengths
✅ Apply material-specific workflows - Follow best practices for upholstery, woodworking, and manufacturing
✅ Plan for material properties - Account for pattern matching, grain strength, and cutting considerations
Project: Leather office chair restoration
Material: Premium leather hide (irregular shape)
Setup Process:
Project: Kitchen cabinet doors
Material: 18mm birch plywood, custom sheet size
Setup Process:
Project: Curtain panels for commercial space
Material: 200cm wide architectural fabric
Setup Process:
Now that you've mastered material setup, you're ready for:
1. Base Material section → Edit width/length → Set kerf → Choose grain direction → Select units
1. "Update Length" button → Recalculates minimum length needed → Use for roll materials
1. Units dropdown → Choose cm or mm → All values convert automatically
Time to master: 20-25 minutes
Result: Accurate material configuration for optimal cutting efficiency and professional results
Target: Users adding cutting requirements to jobs
Content: Manual panel entry, panel groups, quantities, CSV import
Key Learning: Efficient data entry methods and panel organization
Adding panels to your cut list is the foundation of any layout optimization project. The Layout Optimizer provides intuitive tools for entering panel dimensions, quantities, and organizing your cutting requirements.
Panel Name Field:
Width Field:
Length Field:
Quantity Field:
Furniture Components:
Upholstery Pieces:
Group Similar Pieces:
Separate Different Pieces:
Descriptive and Specific:
Consistent Format:
The Layout Optimizer organizes panels into groups that reflect common cutting scenarios. Understanding when and how to use each group type improves organization and workflow efficiency.
Purpose: Basic rectangular pieces that don't require special sub-components.
Furniture Making:
Purpose: Upholstery components for box-style cushions with borders and optional zippers.
Main Panel:
Border Panel:
Zipper Panel (Optional):
Purpose: Cylindrical cushions with main body and circular end panels.
Main Panel:
Side Panels:
Use Standard Panels when:
Use Box Cushion when:
Use Bolster when:
Mastering efficient data entry techniques significantly speeds up project setup and reduces errors. The Layout Optimizer includes several features designed to streamline panel input workflows.
For large projects with many panels, CSV import provides a fast and accurate way to enter cut list data. Understanding the import format and process enables efficient bulk data entry.
The Layout Optimizer expects CSV files with specific column headers and data format:
Column Headers (First Row):
Panel Name,Width,Length,Quantity
Data Format Example:
Panel Name,Width,Length,Quantity
Seat Cushion Top,50,45,2
Seat Cushion Bottom,50,45,2
Back Cushion,45,40,1
Armrest Left,25,35,1
Armrest Right,25,35,1
Excel/Numbers/Google Sheets:
Panel Name Column:
Width/Length Columns:
Quantity Column:
Format Errors:
Data Errors:
Effective panel management goes beyond initial entry to include editing, organizing, and maintaining your cut list throughout the project lifecycle.
By the end of this guide, you should be able to:
✅ Add panels efficiently - Use manual entry with proper naming, dimensions, and quantities
✅ Choose appropriate panel groups - Select Standard Panels, Box Cushion, or Bolster based on component requirements
✅ Use efficient data entry techniques - Employ drag-and-drop, dimension swapping, copying, and keyboard shortcuts
✅ Import CSV data successfully - Prepare properly formatted CSV files and handle import errors
✅ Manage complex cut lists - Edit, organize, and validate panels throughout project lifecycle
✅ Apply professional naming conventions - Use clear, consistent naming that supports workflow efficiency
✅ Organize panels strategically - Group and order panels for optimal workflow and material efficiency
✅ Validate data accuracy - Check dimensions, quantities, and material compatibility before optimization
Project: Custom kitchen with 15 cabinet doors and drawer faces
Approach: Manual entry with systematic organization
Workflow:
Project: Sofa with chair and ottoman matching set
Approach: Multiple panel groups for different component types
Sofa Setup (Box Cushion):
Project: 500 identical components for production run
Approach: CSV import for bulk data entry
CSV Preparation:
Panel Name,Width,Length,Quantity
Housing Front,120,80,100
Housing Back,120,80,100
Housing Side Left,75,80,100
Housing Side Right,75,80,100
Housing Top,120,75,100
Housing Bottom,120,75,100
Import Workflow:
Now that you've mastered panel input, you're ready for:
1. Cut List section → "Add Panel" → Edit name/dimensions/quantity → Enter to confirm
Panel Name,Width,Length,Quantity
Example Panel,50,60,2
Time to master: 25-30 minutes
Result: Efficient panel entry with organized cut lists ready for optimization
Target: Users wanting to minimize material waste
Content: Automatic optimization, manual positioning, efficiency calculations
Key Learning: Using both automatic and manual optimization effectively
The Layout Optimizer's automatic optimization algorithm is the core feature that sets this tool apart. Understanding how it works and when to use it ensures you achieve maximum material efficiency with minimal effort.
The Layout Optimizer uses a sophisticated algorithm that considers multiple factors to find the most efficient panel arrangement:
Material Constraints:
Panel Properties:
Efficiency Metrics:
"Optimize Layout" (Available):
"Optimizing..." (Processing):
"Re-optimize" (After Changes):
The efficiency percentage represents how much of your material is being used productively:
Calculation Formula:
Efficiency = (Total Panel Area / Total Material Area) × 100
Example Calculation:
90-100% Efficiency:
80-90% Efficiency:
70-80% Efficiency:
60-70% Efficiency:
Below 60% Efficiency:
Positive Factors (Increase Efficiency):
Negative Factors (Decrease Efficiency):
Complex Geometric Constraints:
Processing Limitations:
Specialized Requirements:
Quality Considerations:
Pre-Optimization Planning:
Post-Optimization Refinement:
While automatic optimization provides excellent results for most scenarios, manual positioning gives you complete control over panel placement. Understanding when and how to use manual adjustment ensures you can achieve optimal results for any project.
Production Workflow Requirements:
Material Considerations:
Quality Requirements:
Use Automatic When:
Use Manual When:
Single Panel Selection:
Multiple Panel Selection:
Coarse Movement:
Fine Positioning:
The Layout Optimizer provides visual guidance through snap lines that appear during manual positioning:
Edge Alignment Snaps:
Visual Snap Indicators:
Edge Snapping:
Spacing Snapping:
Snap Sensitivity:
Snap Override:
Selection States:
Position Validation:
Efficiency Feedback:
Spacing Validation:
Cursor Changes:
Contextual Information:
The most effective optimization strategy combines automatic optimization with strategic manual adjustments. This hybrid approach leverages the algorithm's computational power while incorporating human expertise for specialized requirements.
Computational Advantage:
Professional Foundation:
Production Workflow Enhancement:
Material Quality Improvements:
Cutting Sequence Organization:
Efficiency Fine-Tuning:
Pass 1: Automatic Foundation
Pass 2: Major Adjustments
Pass 3: Fine-Tuning
Efficiency Monitoring:
Quality Validation:
When to Prioritize Efficiency:
When to Sacrifice Efficiency:
Evaluate Each Adjustment:
Well-Balanced Layout:
Warning Signs of Poor Balance:
Developing expertise in optimization strategies enables you to consistently achieve superior results across different project types and materials. These proven approaches address common optimization challenges and maximize material efficiency.
Large Panel Priority:
Small Panel Flexibility:
Size Categories:
Grouping Strategy:
Large Panel Placement:
Small Panel Strategies:
Grain Direction Benefits:
Grain Constraint Challenges:
Parallel Grain Strategy:
Mixed Grain Approach:
Fabric Projects:
Wood Projects:
Unusable Waste:
Potentially Useful Off-Cuts:
Edge Utilization:
Space Optimization:
Incorporate into Design:
Off-Cut Management:
Cutting Sequence Optimization:
Tool Efficiency:
Operator Efficiency:
Material Handling:
Precision Requirements:
Assembly Considerations:
Even with proper setup and technique, optimization challenges can arise. Understanding common issues and their solutions ensures you can quickly resolve problems and achieve optimal results.
Individual Panel Problems:
Combined Panel Issues:
Panel Modifications:
Material Adjustments:
Efficiency Problems:
Layout Problems:
Input Corrections:
Algorithm Adjustments:
Processing Speed:
Quality Indicators:
Job Size Management:
Performance Optimization:
Browser Constraints:
Practical Limits:
Geometric Limitations:
Processing Constraints:
Geometric Workarounds:
Performance Workarounds:
Realistic Expectations:
When to Accept Results:
By the end of this guide, you should be able to:
Project: Kitchen cabinet doors for production run
Challenge: Balance efficiency with production workflow requirements
Workflow:
Project: High-end sofa with matching fabric pattern across all panels
Challenge: Achieve pattern continuity while minimizing waste
Workflow:
Project: Custom woodworking with expensive hardwood material
Challenge: Maximize efficiency to control material costs
Workflow:
Project: 150 components for commercial furniture order
Challenge: Optimize large job within system performance limits
Initial Problem:
Solution Approach:
Now that you've mastered layout optimization, you're ready for:
1. Setup check: Material configured, all panels entered, units consistent
2. Click "Optimize Layout" → Wait for processing → Review efficiency results
3. Efficiency targets: 90%+ excellent, 80-90% very good, 70-80% good, 60-70% fair
1. Select panel → Drag to position → Use snap lines for alignment
2. Ctrl+Click for multiple selection → Arrow keys for fine adjustment
1. Start automatic → Analyze results → Manual improvements → Monitor efficiency
2. Balance trade-offs: Efficiency vs. production workflow vs. quality requirements
Time to master: 30-40 minutes
Result: Expert-level optimization skills with ability to balance efficiency, quality, and production requirements
Target: Users wanting hands-on control of panel placement
Content: Drag-and-drop, snapping, selection, rotation, keyboard controls
Key Learning: Mastering the interactive layout visualization
The Layout Optimizer's interactive layout system provides intuitive drag-and-drop control over panel positioning. Understanding these fundamentals enables precise manual control over your cutting layouts.
Single Panel Selection:
Visual Selection Indicators:
Boundary Limits:
Collision Detection:
The Layout Optimizer uses intelligent snapping to help align panels precisely and maintain proper spacing for cutting operations.
Edge Alignment Snapping:
Spacing Snapping:
Blue Lines: Horizontal and vertical alignment guides
Green Lines: Optimal spacing indicators
Red Lines: Boundary warnings
Dotted Lines: Extended alignment references
Efficiency Updates:
Position Feedback:
Valid Positioning:
Invalid Positioning:
Precision Control:
Mouse-Specific Features:
Touch Gestures:
Touch-Specific Considerations:
Beyond basic single-panel selection, the Layout Optimizer provides powerful multi-panel selection capabilities that enable efficient group operations and complex layout adjustments.
Adding to Selection:
Selection Management:
Selected Panel Indicators:
Interactive Feedback:
Unified Movement:
Relative Positioning:
Boundary Management:
Snap Behavior with Groups:
Selection Modifiers:
Navigation with Selection:
Selection by Properties:
Visual Selection Tools:
Complete Deselection:
Partial Deselection:
Selection Persistence:
Selection Memory:
While drag-and-drop provides intuitive control, precision positioning tools enable exact panel placement for professional-quality layouts that meet tight production tolerances.
Basic Movement:
Movement Increments:
Modifier Keys:
Arrow Key Behavior:
Alignment Snap Lines:
Snap Line Behavior:
Distance Indicators:
Snap Quality Assessment:
Edge Detection:
Boundary Behavior:
Usable Material Area:
Dynamic Boundaries:
Collision Detection System:
Collision Response:
Smart Collision Handling:
Collision Prevention:
Cutting Clearance:
Kerf-Aware Collision Detection:
Beyond basic positioning, the Layout Optimizer provides specialized panel operations that enhance workflow efficiency and enable complex layout manipulations.
Double-Click Rotation:
Rotation Behavior:
Efficiency Optimization:
Production Considerations:
Dimension Swap Function:
Swap Triggers:
Layout Flexibility:
Production Planning:
Real-Time Detection:
Overlap Resolution:
Overlap Analysis:
Group Overlap Management:
Undo System:
Redo Functionality:
Supported Operations:
Action Granularity:
Keyboard Shortcuts:
Visual History:
The Layout Optimizer provides multiple viewing options and scaling controls that enhance visibility and enable efficient work with layouts of any size or complexity.
Scale to Fit Width:
Scale to Fit Length:
Automatic Mode Selection:
Manual Mode Override:
Zoom Methods:
Zoom Behavior:
Pan Controls:
Navigation Features:
Activation:
Full-Screen Benefits:
Simplified Controls:
Full-Screen Optimization:
Print Optimization:
Print Scaling:
Professional Output:
Print Quality Control:
Workshop Documentation:
Production Integration:
By the end of this guide, you should be able to:
Project: High-end cabinet doors requiring precise alignment
Challenge: Achieve perfect alignment for professional appearance
Workflow:
Project: Large sectional sofa with 50+ panels
Challenge: Efficiently organize and position many related panels
Workflow:
Project: Mixed woodworking job with varying panel sizes
Challenge: Optimize grain direction while maximizing efficiency
Workflow:
Project: Custom furniture layout for client approval
Challenge: Present layout professionally for client sign-off
Workflow:
Now that you've mastered interactive layout control, you're ready for:
1. Select panel → Drag to move → Use snap lines for alignment
2. Double-click panel → 90-degree rotation
3. Ctrl+Click → Multi-panel selection → Group movement
Time to master: 25-35 minutes
Result: Expert-level control over panel positioning with professional precision and efficiency
Target: Users generating cut lists and documentation
Content: PDF generation, CSV export, workshop documentation
Key Learning: Creating professional output for production
The Layout Optimizer's PDF generation system creates professional documentation suitable for client presentations, workshop production, and project archiving. Understanding these features enables you to produce high-quality output that integrates seamlessly into professional workflows.
Complete Project Documentation:
Professional Formatting:
Accurate Scale Rendering:
Technical Drawing Standards:
Panel Information Display:
Production Information:
Project Identification:
Technical Specifications:
Comprehensive Panel Listing:
Summary Information:
Visual Presentation Options:
Information Display Controls:
Client Presentation Mode:
Workshop Production Mode:
Resolution Options:
File Management:
Beyond visual documentation, the Layout Optimizer provides comprehensive data export capabilities that integrate with spreadsheet applications, ERP systems, and other business tools.
Column Organization:
Data Formatting Standards:
Enhanced Information Fields:
Calculated Fields:
Position Coordinates:
Layout Reconstruction Data:
Machine-Ready Coordinates:
CAD Software Compatibility:
Import-Ready Formatting:
Formula-Friendly Structure:
ERP System Compatibility:
Inventory Management:
Field Selection:
Format Customization:
Saved Export Profiles:
Export Profile Management:
Multiple Job Export:
Production Planning Integration:
Professional workshop documentation bridges the gap between design optimization and actual production, ensuring that the efficiency gains achieved in layout planning translate to real-world cutting operations.
Workshop-Friendly Formatting:
Scale and Sizing:
Critical Information Priority:
Secondary Information:
Logical Grouping:
Workshop-Friendly Formatting:
Progressive Cut Lists:
Production Tracking:
Utilization Metrics:
Cost Impact Analysis:
Waste Characterization:
Waste Reduction Strategies:
Executive Summary Format:
Technical Documentation:
Professional Layout Graphics:
Supporting Documentation:
Interactive Presentations:
Approval Documentation:
Comprehensive data management ensures project continuity, enables team collaboration, and protects against data loss while supporting professional workflow requirements.
Complete Job Package:
Metadata Inclusion:
Native Format Export:
Standard Format Support:
Job Sharing Workflow:
Collaborative Editing Support:
Device Independence:
Software Version Management:
Version Naming Conventions:
Change Documentation:
Regular Backup Schedule:
Backup Storage Strategy:
Supported Platforms:
Sync Configuration:
Security and Compliance:
Scalability and Performance:
Shared Workspace:
Integration Workflows:
Professional-grade integration capabilities ensure the Layout Optimizer fits seamlessly into existing business processes and production workflows.
Standard CAD Formats:
CAD-Optimized Data:
Design-to-Production Pipeline:
CAD Software Compatibility:
CNC File Formats:
CNC-Specific Features:
Manufacturing Workflow:
Machine Compatibility:
ERP Data Exchange:
Business Process Integration:
Real-Time Integration:
Standard Integration Formats:
Quality Documentation:
Quality Control Workflows:
Industry Standards:
Audit Trail Support:
By the end of this guide, you should be able to:
✅ Generate professional PDFs - Create comprehensive job documentation with layouts and cut lists
✅ Export CSV data - Generate spreadsheet-compatible files with complete project information
✅ Create workshop documentation - Produce production-ready materials for cutting operations
✅ Manage data backup - Export and import complete job data for safety and collaboration
✅ Integrate with other tools - Connect Layout Optimizer data with CAD, CNC, and business systems
✅ Understand export options - Choose appropriate formats and settings for different purposes
✅ Professional presentation - Create client-ready documentation and presentations
✅ Quality control documentation - Generate materials supporting quality assurance processes
Project: Custom dining room set for architectural firm client
Challenge: Create professional presentation for design approval and production documentation
Workflow:
Project: 200-chair order for corporate office furniture
Challenge: Create efficient production documentation for large-volume manufacturing
Workflow:
Project: Kitchen cabinet manufacturing with ERP integration
Challenge: Integrate layout data with existing business systems for seamless workflow
Workflow:
Project: Furniture components manufactured across multiple locations
Challenge: Share optimized layouts between design center and production facilities
Workflow:
Now that you've mastered export and output capabilities, you're ready for:
Time to master: 20-30 minutes
Result: Professional documentation and seamless workflow integration for production-ready output
This style guide documents the design system for the Layout Optimizer project. It serves as a central reference for designers and developers to ensure consistency and coherence across the application.
The design adopts a functional, dark-themed aesthetic prioritizing clarity, utility, and information hierarchy. This approach is well-suited for technical tools and applications where task efficiency and data visibility are paramount. While not strictly adhering to a specific design movement (like Material Design or Fluent), it follows modern usability principles with a custom, practical implementation.
The color system uses CSS variables for color management and consistency. The colors shown below automatically reflect the currently active theme and update when you switch between Dark Mode and Light Mode.
foreground-brighter
Brightest foreground color for emphasized text and icons
foreground
Primary foreground color for body text and standard UI elements
foreground-darker
Muted foreground color for secondary text and subtle elements
background-brighter
Elevated background color for cards and raised surfaces
background
Primary background color for main application areas
background-darker
Recessed background color for input fields and code blocks
accent-01-brighter
Bright success color for hover states and emphasis
accent-01
Primary success color for positive actions and confirmations
accent-01-darker
Dark success color for backgrounds and subtle indicators
accent-02-brighter
Bright error color for critical alerts and urgent actions
accent-02
Primary error color for warnings and destructive actions
accent-02-darker
Dark error color for backgrounds and subtle error indicators
accent-03-brighter
Bright warning color for important notices and highlights
accent-03
Primary warning color for cautions and neutral alerts
accent-03-darker
Dark warning color for backgrounds and subtle warning indicators
accent-04-brighter
Bright neutral color for information highlights and emphasis
accent-04
Primary neutral color for informational elements and secondary actions
accent-04-darker
Dark neutral color for backgrounds and subtle informational indicators
base-material-01
Primary material background for layout visualization
base-material-02
Secondary material background for layout visualization
All colors are automatically updated based on the current theme (Dark Mode or Light Mode). Use these CSS variables in your stylesheets to ensure consistency across themes:
/* Example usage */
.my-element {
background-color: var(--color-background);
color: var(--color-foreground);
border: 1px solid var(--color-foreground-darker);
}
.success-message {
color: var(--color-accent-01);
background-color: var(--color-accent-01-darker);
}
.error-alert {
color: var(--color-accent-02);
background-color: var(--color-accent-02-darker);
}
The color values automatically adapt when switching between themes. You can change the theme using the theme toggle in the application header to see how all colors update dynamically.
Typography plays a crucial role in establishing hierarchy and readability. The system uses standard web fonts and a clear scale defined in the CSS variables.
var(--font-family-01) (Arial, Helvetica,
sans-serif) - Used for headings, body text, and UI elements.var(--font-family-02) (monospace) -
Used for code examples, form inputs, and technical data.The heading system uses a consistent scale with proper spacing and line heights:
font-size: 1.8rem; line-height: 2.4rem
font-size: 1.2rem; line-height: 2.1rem
font-size: 1.2rem; line-height: 1.8rem
font-size: 0.9rem; line-height: 1.5rem
font-size: 0.9rem; line-height: 1.5rem; text-transform: uppercase
font-size: 0.9rem; line-height: 1.5rem; minimal margins
This is standard paragraph text using var(--font-family-01) at 0.9rem
with 1.5rem line height.
You can use strong text for emphasis or italicized text
for subtle highlights.
Here's a link example with underline styling and
hover effects.
Inline code like var(--color-foreground) uses monospace font with a
distinct background.
Code blocks are also supported:
// Code blocks use monospace font with darker background
function example() {
return "This uses var(--color-background-darker)";
}
Standard list styling with proper spacing and indentation:
The button system provides consistent styling for various types of actions. Buttons use CSS variables for theming and include size variations for different contexts.
.button--small: Most commonly used button class - compact buttons
for job cards, toolbars, and UI controls (26px height, reduced padding).simple-button: Base class for form buttons with full-width styling
and bold font weight.simple-button--primary: Primary action buttons using
var(--color-accent-01) background (login/subscription forms).button-delete: Icon buttons for delete/remove actions (no
background, right-aligned).swap-dimensions: Special button for swapping dimension values
(centered, with scale hover effect)All buttons support:
The application uses a consistent set of UI components with standardized styling. All components support theming through CSS variables and include proper accessibility features.
Text inputs use monospace font and consistent sizing across all form fields:
Technical details: 0.72rem font size, monospace family, 6px×9px padding, uppercase letter-spacing
Custom styled dropdowns with SVG arrows and consistent typography:
Section headers in settings use 0.66rem font size with 500 font weight:
Actual checkboxes from Display settings - 12×12px with 0.72rem labels:
Theme selection radios - 12×12px circles with 0.72rem labels:
Select elements with labels and custom arrow styling (as used in Settings):
Standardized alert components for different message types using theme-aware colors:
var(--color-foreground) with subtle background.
var(--color-accent-01)
color system.
var(--color-accent-03)
color system.
var(--color-accent-02) color
system.
Interactive help system with expandable content:
Form validation with visual feedback:
Date inputs are used in job cards for start and due dates:
Note: Date format conversion happens in JavaScript (DD/MM/YYYY ↔ YYYY-MM-DD)
6-digit verification code input used in account login:
Telephone and URL inputs share the same base styling as text inputs:
Used in base material settings to swap width/length values:
Features: Scales to 1.2x on hover, centered icon
Eye icon toggle for showing/hiding panel groups:
Text-only buttons used in account forms:
Hidden file input created dynamically for CSV imports:
CSV Import (created dynamically)
accept=".csv"
Implementation: Created via JavaScript when import button is clicked
Used in specialized interfaces (e.g., wave pool demo):
Note: Standard HTML range input with browser-specific styling
This is the actual dropdown structure used throughout the main interface with labels:
Standard HTML lists are styled for readability.
Code is displayed using monospace font and distinct background colors.
Inline code, such as const variable = true;, uses the code
element and --color-background-brighter.
Multi-line code blocks use the pre and code elements with
--color-background-darker.
function greet(name) {
// Check if a name was provided
if (name) {
console.log(`Hello, ${name}!`);
} else {
console.log("Hello there!");
}
}
greet("Style Guide User");
Keyboard commands like Ctrl + S are styled using the
kbd tag for clarity.
1.1. "Agreement" means this Software License Agreement.
1.2. "Software" means the Layout Optimizer web application, including all associated code, algorithms, user interfaces, documentation, and updates.
1.3. "Licensor" means ehsto™, a sole trader registered in New South Wales, Australia.
1.4. "Licensee" or "You" means the individual or entity that has subscribed to use the Software.
1.5. "Subscription" means the recurring payment for access to the Software for a specified period.
2.1. Licensor offers two tiers of access to the Software:
2.2. This license does not permit Licensee to:
3.1. The Software, including all intellectual property rights therein, is and shall remain the exclusive property of Licensor. This includes, but is not limited to, source code, object code, algorithms, user interfaces, trade secrets, and documentation.
3.2. This Agreement does not grant Licensee any rights to patents, copyrights, trade secrets, trade names, trademarks, or any other rights, functions, or licenses in respect of the Software.
3.3. Any feedback, suggestions, or ideas provided by Licensee regarding the Software may be used by Licensor without obligation to Licensee.
4.1. Access to the full functionality of the Software requires an active subscription, paid according to the terms specified at the time of purchase. The reduced functionality version is available at no cost, subject to the terms of this Agreement.
4.2. Licensor reserves the right to change subscription fees upon notice to Licensee. Such changes will not affect the current subscription period but will apply to renewals.
4.3. No refunds will be provided except as required by applicable law.
5.1. This Agreement shall commence upon Licensee's subscription to the Software and shall continue until terminated.
5.2. For paid subscribers, Licensee may terminate this Agreement by canceling the subscription, which will take effect at the end of the current billing period. Upon such termination, Licensee may continue to use the free version subject to the terms of this Agreement.
5.3. Licensor may terminate this Agreement immediately if Licensee breaches any provision of this Agreement.
5.4. Upon termination, Licensee shall cease all use of the Software and destroy all copies, if any, in Licensee's possession.
6.1. Licensor warrants that it has the right to license the Software to Licensee.
6.2. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. LICENSOR SPECIFICALLY DISCLAIMS ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
6.3. Licensor does not warrant that the Software will meet Licensee's requirements or that operation of the Software will be uninterrupted or error-free.
7.1. IN NO EVENT SHALL LICENSOR BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING WITHOUT LIMITATION, LOSS OF PROFITS, DATA, USE, GOODWILL, OR OTHER INTANGIBLE LOSSES, RESULTING FROM LICENSEE'S ACCESS TO OR USE OF OR INABILITY TO ACCESS OR USE THE SOFTWARE.
7.2. LICENSOR'S TOTAL LIABILITY TO LICENSEE SHALL NOT EXCEED THE AMOUNTS PAID BY LICENSEE TO LICENSOR FOR THE SOFTWARE DURING THE TWELVE (12) MONTHS PRECEDING THE EVENT GIVING RISE TO THE LIABILITY.
8.1. Licensee agrees to indemnify, defend, and hold harmless Licensor from and against any claims, liabilities, damages, losses, and expenses, including reasonable attorneys' fees and costs, arising out of or in any way connected with Licensee's access to or use of the Software.
9.1. Licensee agrees to comply with all applicable export and re-export control laws and regulations, including the Export Administration Regulations maintained by the U.S. Department of Commerce.
10.1. This Agreement shall be governed by and construed in accordance with the laws of New South Wales, Australia, without regard to its conflict of law principles.
10.2. Any dispute arising from or relating to this Agreement shall be subject to the exclusive jurisdiction of the courts of New South Wales, Australia.
11.1. This Agreement constitutes the entire understanding between the parties concerning the subject matter hereof and supersedes all prior agreements, understandings, or negotiations.
11.2. If any provision of this Agreement is found to be unenforceable or invalid, that provision shall be limited or eliminated to the minimum extent necessary so that this Agreement shall otherwise remain in full force and effect.
11.3. Licensor's failure to enforce any right or provision in this Agreement will not constitute a waiver of such provision, or any other provision of this Agreement.
11.4. This Agreement may not be modified except in writing signed by Licensor.
11.5. Licensee may not assign or transfer any rights or obligations under this Agreement without Licensor's prior written consent.
12.1. If you have any questions about this Agreement, please contact Licensor at:
Email: studio@ehsto.com
Website: http://www.ehsto.com
© 2025 ehsto™. All rights reserved.
1.1. ehsto™ ("we", "our", or "us") is committed to protecting your privacy and handling your personal information in accordance with the Privacy Act 1988 (Cth) and other applicable privacy laws.
1.2. This Privacy Policy explains how we collect, use, store, and disclose your personal information in connection with our Layout Optimizer web application and related services.
1.3. By using our services, you consent to the collection, use, and disclosure of your personal information as described in this Privacy Policy.
2.1. We may collect the following types of personal information:
2.2. We collect information directly from you when you:
2.3. We may also collect information automatically through:
3.1. We use your personal information for the following purposes:
3.2. We may also use your information to:
4.1. We do not sell, trade, or rent your personal information to third parties.
4.2. We may share your information with:
4.3. All third-party service providers are contractually bound to protect your information and use it only for the specified purposes.
5.1. We implement appropriate technical and organizational measures to protect your personal information against:
5.2. Security measures include:
5.3. Your information is stored on secure servers located in Australia and may be accessed by our authorized personnel for legitimate business purposes.
6.1. We retain your personal information for as long as necessary to:
6.2. When information is no longer needed, we securely delete or anonymize it in accordance with our data retention policies.
7.1. Under the Privacy Act 1988 (Cth), you have the right to:
7.2. To exercise these rights, please contact us using the details provided in Section 11.
7.3. You can also:
8.1. We use cookies and similar technologies to:
8.2. You can control cookies through your browser settings, but disabling cookies may affect the functionality of our services.
9.1. Our services may contain links to third-party websites or integrate with third-party services.
9.2. We are not responsible for the privacy practices of these third parties, and we encourage you to review their privacy policies.
10.1. Our services are not intended for children under 13 years of age.
10.2. We do not knowingly collect personal information from children under 13. If we become aware of such collection, we will delete the information promptly.
11.1. We may update this Privacy Policy from time to time to reflect changes in our practices or legal requirements.
11.2. We will notify you of material changes by:
11.3. Your continued use of our services after the changes take effect constitutes acceptance of the updated Privacy Policy.
12.1. If you have questions, concerns, or requests regarding this Privacy Policy or our privacy practices, please contact us at:
ehsto™
Email: privacy@ehsto.com
Address: New South Wales, Australia
Website: http://www.ehsto.com
12.2. For complaints about our privacy practices, you may also contact the Office of the Australian Information Commissioner (OAIC) at www.oaic.gov.au.
Last Updated: February 2025
© 2025 ehsto™. All rights reserved.
1.1. These Terms and Conditions ("Terms") constitute a legally binding agreement between you ("User", "you", or "your") and ehsto™ ("we", "us", "our", or "Company"), a sole trader registered in New South Wales, Australia.
1.2. By accessing, using, or subscribing to our Layout Optimizer web application and related services ("Services"), you agree to be bound by these Terms and our Privacy Policy.
1.3. If you do not agree to these Terms, you must not use our Services.
1.4. We reserve the right to modify these Terms at any time. Changes will be effective immediately upon posting on our website. Your continued use of the Services after any changes constitutes acceptance of the modified Terms.
2.1. The Layout Optimizer is a web-based application that provides material cutting optimization solutions for various industries including manufacturing, construction, and design.
2.2. We offer both free and subscription-based access tiers:
2.3. We reserve the right to modify, suspend, or discontinue any aspect of the Services at any time without prior notice.
3.1. To access certain features, you must create an account by providing accurate, current, and complete information.
3.2. You are responsible for:
3.3. You must be at least 18 years old to create an account and use our Services.
3.4. We reserve the right to suspend or terminate accounts that violate these Terms or are inactive for extended periods.
4.1. Subscription Plans: Premium features require a valid subscription with fees as specified on our website at the time of purchase.
4.2. Payment Terms:
4.3. Price Changes: We may change subscription fees upon 30 days' notice. Changes will not affect your current billing period but will apply to subsequent renewals.
4.4. Refunds:
4.5. Cancellation: You may cancel your subscription at any time. Cancellation takes effect at the end of the current billing period.
5.1. You agree to use the Services only for lawful purposes and in accordance with these Terms.
5.2. Prohibited Activities: You must not:
5.3. We reserve the right to investigate violations and take appropriate action, including account suspension or termination.
6.1. Our Rights: The Services, including all software, algorithms, designs, text, graphics, logos, and other content, are owned by ehsto™ and protected by intellectual property laws.
6.2. License to Use: Subject to these Terms, we grant you a limited, non-exclusive, non-transferable, revocable license to use the Services for your internal purposes.
6.3. User Content: You retain ownership of content you upload or create using our Services, but grant us a license to use such content to provide and improve our Services.
6.4. Restrictions: You may not reproduce, modify, distribute, or create derivative works from our intellectual property without express written permission.
7.1. Consumer Guarantees: Our Services come with guarantees that cannot be excluded under Australian Consumer Law, including:
7.2. Remedies: If we fail to meet these guarantees, you may be entitled to:
7.3. Fair Trading: We comply with Australian Consumer Law requirements for fair trading, accurate advertising, and consumer protection.
8.1. Service Availability: While we strive for high availability, we do not guarantee uninterrupted access to our Services.
8.2. Accuracy: We make no warranties about the accuracy, completeness, or reliability of optimization results or recommendations.
8.3. Third-Party Content: We are not responsible for third-party websites, services, or content accessible through our Services.
8.4. Technical Issues: We disclaim liability for technical failures, data loss, or security breaches beyond our reasonable control.
9.1. Maximum Liability: Our total liability to you for any claims related to the Services shall not exceed the amount you paid us in the 12 months preceding the claim.
9.2. Excluded Damages: To the maximum extent permitted by law, we exclude liability for:
9.3. Australian Consumer Law: Nothing in these Terms excludes, restricts, or modifies rights under Australian Consumer Law that cannot be excluded, restricted, or modified.
10.1. You agree to indemnify and hold harmless ehsto™, its officers, employees, and agents from any claims, damages, losses, or expenses arising from:
11.1. Our collection, use, and protection of your personal information is governed by our Privacy Policy, which is incorporated into these Terms by reference.
11.2. By using our Services, you consent to the collection and use of your information as described in our Privacy Policy.
12.1. Termination by You: You may terminate your account at any time by following the cancellation process or contacting us.
12.2. Termination by Us: We may suspend or terminate your account immediately if you:
12.3. Effect of Termination: Upon termination:
13.1. Governing Law: These Terms are governed by the laws of New South Wales, Australia.
13.2. Jurisdiction: Any disputes arising from these Terms or the Services shall be subject to the exclusive jurisdiction of the courts of New South Wales, Australia.
13.3. Dispute Resolution Process:
Last Updated: February 2025
© 2025 ehsto™. All rights reserved.