interface/README.md
The OpenEMR UI is built with SASS on top of a bootstrap base (compiled with gulp).
Different themes share a common core and have their own overrides to customize the appearance of OpenEMR.
There are three different types of themes:
light theme is the default modern thememanila theme is a combination of OpenEMR's legacy themes (which have all been removed) with some modern elements.colors) are the same color_base theme with different color palettes.rtl_ prefixed themes are built by appending the rtl.css file to every theme automatically. These overrides provide right to left adjustments for all style*.css files
Files specific to different themes are named with the following conventions:
themes/core contain shared styles that all themes import toward the top of their filesthemes/colors contain all changes specific to the color theme work (led by zbig01)themes/[component_name] (e.g. buttons or navigation-slide) contain files named after each theme variant.
position-override gives a hook for style to change placement of buttons. In light/manila style this is ignored and buttons go to left positioned under data entry field. Whereas in the other styles this is used to center the buttons.Compiling SASS files locally requires node.js and npm.
npm install from the root directory.docker exec -it [your_container_id] /bin/sh then cd into openemrFrom here you can either:
npm run dev - just compiles the local .scss files and recompiles them whenever they are changed.npm run dev-sync (EXPERIMENTAL*) - loads your local OpenEMR instance using BrowserSync (port 3000) in front of 80 (feel free to edit the package.json to change the port)
interface directory/themes directory into scss