Files
logic-gates/js/constants.js
Jose Luis Montañes 7409a96cf1 refactor: modularize into ES6 modules
Split monolithic index.html into:
- js/constants.js - gate config, colors, dimensions
- js/state.js     - shared application state
- js/gates.js     - evaluation logic, port geometry
- js/renderer.js  - canvas drawing
- js/waveform.js  - GTKWave-style signal viewer
- js/simulation.js - clock tick engine
- js/events.js    - mouse, keyboard, UI handlers
- js/app.js       - entry point
- css/style.css   - all styles
2026-03-19 22:00:02 +01:00

27 lines
742 B
JavaScript

// Gate dimensions and rendering constants
export const GATE_W = 100;
export const GATE_H = 60;
export const PORT_R = 7;
export const GATE_COLORS = {
AND: '#00e599', OR: '#3388ff', NOT: '#ff6644',
NAND: '#e5cc00', NOR: '#cc44ff', XOR: '#ff44aa',
INPUT: '#3388ff', CLOCK: '#ff44aa', OUTPUT: '#ff8833'
};
export const SIGNAL_COLORS = [
'#00e599', '#3388ff', '#ff6644', '#e5cc00',
'#cc44ff', '#ff44aa', '#ff8833', '#44ddff',
'#88ff44', '#ff4488', '#44ffaa', '#ffaa44'
];
export function gateInputCount(type) {
if (type === 'CLOCK' || type === 'INPUT') return 0;
if (type === 'NOT' || type === 'OUTPUT') return 1;
return 2;
}
export function gateOutputCount(type) {
return type === 'OUTPUT' ? 0 : 1;
}