diff --git a/ivette/src/dome/src/renderer/controls/buttons.js b/ivette/src/dome/src/renderer/controls/buttons.js
index bd4957cbfabe77fcb7f3a87a23224ecc8955728e..a79c24cbb0bbae6791025dc909af8ebd0adfe6a4 100644
--- a/ivette/src/dome/src/renderer/controls/buttons.js
+++ b/ivette/src/dome/src/renderer/controls/buttons.js
@@ -13,7 +13,7 @@
 
 import React from 'react' ;
 import { Icon } from './icons' ;
-import './buttons.css' ;
+import './style.css' ;
 
 const DISABLED = ({ disabled=false, enabled=true }) => !!disabled || !enabled ;
 const TRIGGER = (onClick) => (evt) => {
diff --git a/ivette/src/dome/src/renderer/controls/icons.css b/ivette/src/dome/src/renderer/controls/icons.css
deleted file mode 100644
index 066887a39172745fa58aa671f1c6ff496652a440..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/controls/icons.css
+++ /dev/null
@@ -1,42 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* --- Styling Icons                                                      --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xIcon {
-    flex: 0 0 auto ;
-    display: inline ;
-    margin: 1px ;
-    padding: 1px 0px 0px 0px ;
-}
-
-.dome-xIcon svg {
-    position:relative ;
-}
-
-.dome-xBadge {
-    flex: 0 0 auto ;
-    display: inline ;
-    margin: 1px ;
-    padding: 1px 6px 1px 6px ;
-    height: 16px ;
-    fill: #dedede ;
-    color: #dedede ;
-    font-family: sans-serif ;
-    font-size: smaller ;
-    font-weight: bold ;
-    border-radius: 8px ;
-    background: #777 ;
-}
-
-.dome-window-inactive .dome-xBadge,
-.dome-disabled .dome-xBadge
-{
-    background: #ccc ;
-    color: #eee ;
-    fill: #eee ;
-}
-
-.dome-xBadge label {
-    position: relative ;
-    bottom: -1px ;
-}
diff --git a/ivette/src/dome/src/renderer/controls/icons.js b/ivette/src/dome/src/renderer/controls/icons.js
index d5ad8e7a626395b9e0b29730001a0d73e672e852..35da53950a70dd0007afeb5fbd72578c443bd1bd 100644
--- a/ivette/src/dome/src/renderer/controls/icons.js
+++ b/ivette/src/dome/src/renderer/controls/icons.js
@@ -10,10 +10,10 @@
    and [iterate](#.forEach) over the icon base.
 */
 
+import _ from 'lodash' ;
 import React from 'react' ;
 import Icons from './icons.json' ;
-import './icons.css' ;
-import _ from 'lodash' ;
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Raw SVG element
diff --git a/ivette/src/dome/src/renderer/controls/labels.css b/ivette/src/dome/src/renderer/controls/labels.css
deleted file mode 100644
index e7417b8bd757c78768630264189d11b2c217c203..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/controls/labels.css
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* --- Styling Labels                                                     --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xLabel {
-    padding: 2px ;
-    margin: 2px 4px ;
-}
-
-.dome-xLabel .dome-xIcon {
-    margin-right: 4px ;
-}
-
-.dome-xLabel.dome-text-descr {
-    overflow: auto ;
-}
-
-/* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/controls/labels.js b/ivette/src/dome/src/renderer/controls/labels.js
index 8045b597086c205e1abb2942506934a227c2766b..70c86ce85776657822ec9c692671b5e73de0b25f 100644
--- a/ivette/src/dome/src/renderer/controls/labels.js
+++ b/ivette/src/dome/src/renderer/controls/labels.js
@@ -6,7 +6,7 @@
 
 import React from 'react' ;
 import { Icon } from './icons' ;
-import './labels.css' ;
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Generic Label
diff --git a/ivette/src/dome/src/renderer/controls/buttons.css b/ivette/src/dome/src/renderer/controls/style.css
similarity index 85%
rename from ivette/src/dome/src/renderer/controls/buttons.css
rename to ivette/src/dome/src/renderer/controls/style.css
index 83e792b3dfb9a266ec2a5ecdc6f7c5fda16ae68e..a6986b056761d6525ac544183090ae4b726ce1ad 100644
--- a/ivette/src/dome/src/renderer/controls/buttons.css
+++ b/ivette/src/dome/src/renderer/controls/style.css
@@ -1,4 +1,63 @@
 /* -------------------------------------------------------------------------- */
+/* --- Styling Labels                                                     --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xLabel {
+    padding: 2px ;
+    margin: 2px 4px ;
+}
+
+.dome-xLabel .dome-xIcon {
+    margin-right: 4px ;
+}
+
+.dome-xLabel.dome-text-descr {
+    overflow: auto ;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- Styling Icons                                                      --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xIcon {
+    flex: 0 0 auto ;
+    display: inline ;
+    margin: 1px ;
+    padding: 1px 0px 0px 0px ;
+}
+
+.dome-xIcon svg {
+    position:relative ;
+}
+
+.dome-xBadge {
+    flex: 0 0 auto ;
+    display: inline ;
+    margin: 1px ;
+    padding: 1px 6px 1px 6px ;
+    height: 16px ;
+    fill: #dedede ;
+    color: #dedede ;
+    font-family: sans-serif ;
+    font-size: smaller ;
+    font-weight: bold ;
+    border-radius: 8px ;
+    background: #777 ;
+}
+
+.dome-window-inactive .dome-xBadge,
+.dome-disabled .dome-xBadge
+{
+    background: #ccc ;
+    color: #eee ;
+    fill: #eee ;
+}
+
+.dome-xBadge label {
+    position: relative ;
+    bottom: -1px ;
+}
+/* -------------------------------------------------------------------------- */
 /* --- Base Styling                                                       --- */
 /* -------------------------------------------------------------------------- */
 
diff --git a/ivette/src/dome/src/renderer/dome.js b/ivette/src/dome/src/renderer/dome.js
index b5bb2dff23486099c2b6ecd4cc9f60a2158f477a..0c97272ae00420cfbdd2e279d5f5ddce6dc7706b 100644
--- a/ivette/src/dome/src/renderer/dome.js
+++ b/ivette/src/dome/src/renderer/dome.js
@@ -19,7 +19,7 @@ import { AppContainer } from 'react-hot-loader' ;
 import { remote , ipcRenderer } from 'electron';
 import { EventEmitter } from 'events' ;
 import SYS , * as System from 'dome/system' ;
-import './dome.css' ;
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Context
diff --git a/ivette/src/dome/src/renderer/layout/sidebars.js b/ivette/src/dome/src/renderer/frame/sidebars.js
similarity index 99%
rename from ivette/src/dome/src/renderer/layout/sidebars.js
rename to ivette/src/dome/src/renderer/frame/sidebars.js
index 862ddd785ab5dc63547ee449a81773b1c2f21319..5f0421cfd42984c7465e45e4e9a5e9ed59223552 100644
--- a/ivette/src/dome/src/renderer/layout/sidebars.js
+++ b/ivette/src/dome/src/renderer/frame/sidebars.js
@@ -2,13 +2,14 @@
 // --- SideBars
 // --------------------------------------------------------------------------
 
-/** @module dome/layout/sidebars */
+/** @module dome/frame/sidebars */
 
 import React from 'react' ;
 import * as Dome from 'dome' ;
 import { Badge } from 'dome/controls/icons' ;
 import { Label } from 'dome/controls/labels' ;
-import './sidebars.css' ;
+
+import './style.css' ;
 
 const SideBarContext = React.createContext();
 
diff --git a/ivette/src/dome/src/renderer/layout/toolbars.css b/ivette/src/dome/src/renderer/frame/style.css
similarity index 57%
rename from ivette/src/dome/src/renderer/layout/toolbars.css
rename to ivette/src/dome/src/renderer/frame/style.css
index 2e5df08568f9ba6b34411a0bb5473e9d31fc2382..8aa578aa2c81c5b0106b88a28adc114af5b57068 100644
--- a/ivette/src/dome/src/renderer/layout/toolbars.css
+++ b/ivette/src/dome/src/renderer/frame/style.css
@@ -1,3 +1,205 @@
+/* -------------------------------------------------------------------------- */
+/* --- Tabs & Tab Style Sheet                                             --- */
+/* -------------------------------------------------------------------------- */
+
+/* Tabs Bar */
+
+.dome-xTabsBar {
+    flex: 0 1 auto ;
+    position: relative ;
+    height: 20px ;
+    width: calc( 100% + 1px ); /* hides last border */
+    display: flex ;
+    flex: row wrap ;
+    border-width: 1px ;
+    border-bottom-style: solid ;
+}
+
+/* Tab Content */
+
+.dome-xTab-content {
+    width: 100% ;
+    height: 100% ;
+}
+
+/* Tab Item */
+
+.dome-xTab {
+    flex: 1 1 150px ;
+    position: relative ;
+    font-size: 10px ;
+    text-align: center ;
+    padding: 4px 20px 4px 20px ;
+    border-color: inherit ;
+    border-width: 1px ;
+    border-top-style: none ;
+    border-bottom-style: none ;
+    border-left-style: none ;
+    border-right-style: solid ;
+}
+
+.dome-window-inactive .dome-xTab.dome-inactive {
+    color: #606060 ;
+    border-color: inherit ;
+}
+
+.dome-xTab.dome-inactive:hover {
+    background: #bababa ;
+}
+
+.dome-xTab.dome-inactive {
+    color: #606060 ;
+    border-color: #9c9c9c ;
+    background: #b4b4b4 ;
+}
+
+.dome-window-inactive .dome-xTab.dome-inactive {
+    color: #b0b0b0 ;
+    background: #e6e6e6 ;
+}
+
+/* Closing Tab button */
+
+.dome-xTab-closing {
+    display: inline ;
+    border-radius: 4px ;
+    position: absolute ;
+    width: 12px ;
+    height: 12px ;
+    padding: 2px ;
+    top: 2px ;
+    opacity: 0 ;
+    transition: opacity .1s linear 0.1s , background .1s linear 0.1s ;
+}
+
+.dome-platform-darwin .dome-xTab-closing {
+    right: initial ;
+    left: 5px ;
+}
+
+.dome-xTab-closing {
+    right: 5px ;
+    left: initial ;
+}
+
+.dome-active .dome-xTab-closing:hover {
+    background: #c0c0c0 ;
+}
+
+.dome-inactive .dome-xTab-closing:hover {
+    background: #a0a0a0 ;
+}
+
+.dome-xTab:hover .dome-xTab-closing , .dome-xTab:hover .dome-xTab-closing
+{
+    opacity: 1 ;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- Styling SideBars                                                   --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xSideBar {
+    width: 100% ;
+    height: 100% ;
+    overflow-x: hidden ;
+    overflow-y: auto ;
+    padding-top: 6px ;
+    padding-bottom: 6px ;
+}
+
+.dome-window-active .dome-xSideBar.dome-color-frame {
+    background: #e3e8ec ;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- SideBar Section                                                    --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xSideBarSection {
+    display: block ;
+    margin-top: 10px ;
+    margin-bottom: 10px ;
+}
+
+.dome-xSideBarSection-title {
+    padding-left: 3px ;
+    padding-right: 2px ;
+    display: flex ;
+    flew-flow: row nowrap ;
+    align-items: center ;
+}
+
+.dome-xSideBarSection-title > .dome-xLabel {
+    flex: 1 1 ;
+    overflow: hidden ;
+    text-overflow: ellipsis ;
+    font-weight: bold ;
+}
+
+.dome-xSideBarSection-title > .dome-xBadge {
+    flex: 0 0 ;
+}
+
+.dome-xSideBarSection-hideshow {
+    flex: 0 0 ;
+    margin: 1px ;
+    color: #aaa ;
+    width: 32px ;
+    font-weight: normal ;
+    display: inline ;
+    visibility: hidden ;
+}
+
+.dome-xSideBarSection-title:hover .dome-xSideBarSection-hideshow {
+    visibility: visible ;
+}
+
+.dome-xSideBarSection-content {
+    overflow: hidden ;
+    transition: max-height 250ms ease-in-out ;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- SideBar Items                                                      --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xSideBarItem {
+    padding-left: 2px ;
+    padding-right: 2px ;
+    display: flex ;
+    flex-flow: row nowrap ;
+    align-items: center ;
+}
+
+.dome-window-active .dome-xSideBarItem.dome-active {
+    background: #ccc ;
+}
+
+.dome-window-inactive .dome-xSideBarItem.dome-active {
+    background: #ddd ;
+}
+
+.dome-xSideBarItem > .dome-xLabel {
+    flex: 1 1 ;
+    overflow: hidden ;
+    text-overflow: ellipsis ;
+    padding-left: 12px ;
+}
+
+.dome-xSideBarItem.dome-disabled > .dome-xLabel {
+    color: #b0b0b0 ;
+    fill:  #b0b0b0 ;
+}
+
+.dome-xSideBarItem > .dome-xLabel:last-child {
+    margin-right: 20px ;
+}
+
+.dome-xSideBarItem > .dome-xBadge {
+    flex: 0 0 ;
+}
+
 /* -------------------------------------------------------------------------- */
 /* --- Styling ToolBars                                                   --- */
 /* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/layout/tabs.js b/ivette/src/dome/src/renderer/frame/tabs.js
similarity index 94%
rename from ivette/src/dome/src/renderer/layout/tabs.js
rename to ivette/src/dome/src/renderer/frame/tabs.js
index 61489e0bde419a6985e5ffeefc27d8a182e792e5..9f14f3c9d6dfe97174c12b0ef734ebd9174a0c62 100644
--- a/ivette/src/dome/src/renderer/layout/tabs.js
+++ b/ivette/src/dome/src/renderer/frame/tabs.js
@@ -1,12 +1,13 @@
+// --------------------------------------------------------------------------
+// --- Tabs
+// --------------------------------------------------------------------------
+
+/** @module dome/frame/tabs */
+
 import React from 'react' ;
 import { Icon } from 'dome/controls/icons' ;
-import './tabs.css' ;
 
-/** @module dome/layout/tabs */
-
-// --------------------------------------------------------------------------
-// --- Tabs Bar
-// --------------------------------------------------------------------------
+import './style.css' ;
 
 /**
    @class
@@ -14,6 +15,9 @@ import './tabs.css' ;
    @description
    Shall contains [Tab](module-dome_layout_tabs.Tab.html) instances.
 */
+// --------------------------------------------------------------------------
+// --- Tabs Bar
+// --------------------------------------------------------------------------
 
 export function TabsBar(props) {
   return (
diff --git a/ivette/src/dome/src/renderer/layout/toolbars.js b/ivette/src/dome/src/renderer/frame/toolbars.js
similarity index 99%
rename from ivette/src/dome/src/renderer/layout/toolbars.js
rename to ivette/src/dome/src/renderer/frame/toolbars.js
index 721c5ea3dc838188225c4231c690c36f55d8f7e5..24dff66185ff93bbe3a6749aa768ba236e467e84 100644
--- a/ivette/src/dome/src/renderer/layout/toolbars.js
+++ b/ivette/src/dome/src/renderer/frame/toolbars.js
@@ -2,10 +2,11 @@
 // --- ToolBars
 // --------------------------------------------------------------------------
 
-/** @module dome/layout/toolbars */
+/** @module dome/frame/toolbars */
 
 import React from 'react' ;
-import './toolbars.css' ;
+
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- ToolBar Container
diff --git a/ivette/src/dome/src/renderer/layout/boxes.css b/ivette/src/dome/src/renderer/layout/boxes.css
deleted file mode 100644
index a53382360de5caed92ac8239926234f8e0fd5bf9..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/layout/boxes.css
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* --- Box Containers                                                     --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xBoxes-hbox
-{
-    display: flex ;
-    overflow: hidden ;
-    flex-flow: row nowrap ;
-    align-items: stretch ;
-}
-
-.dome-xBoxes-vbox
-{
-    display: flex ;
-    overflow: hidden ;
-    flex-flow: column nowrap ;
-    align-items: stretch ;
-}
-
-.dome-xBoxes-grid
-{
-    flex: 1 1 auto ;
-    overflow: auto ;
-    display: grid ;
-    display: grid;
-    grid-auto-rows: auto;
-    grid-auto-flow: row;
-    align-items: stretch;
-    align-content: start;
-    justify-content: start;
-}
-
-/* -------------------------------------------------------------------------- */
-/* --- Extensibility                                                      --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xBoxes-pack
-{
-    flex: 0 0 auto ;
-    align-self: flex-start ;
-}
-
-.dome-xBoxes-box
-{
-    flex: 0 0 auto ;
-}
-
-.dome-xBoxes-fill
-{
-    flex: 1 1 auto ;
-}
-
-.dome-xBoxes-scroll
-{
-    flex: 1 1 auto ;
-    overflow: auto ;
-}
-
-.dome-container > .dome-xBoxes-fill
-{
-    width:  100% ;
-    height: 100% ;
-}
-
-.dome-container > .dome-xBoxes-scroll
-{
-    width:  100% ;
-    height: 100% ;
-}
-
-/* -------------------------------------------------------------------------- */
-/* --- Spaces                                                             --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xBoxes-space
-{
-    flex: 0 1 24px ;
-}
-
-.dome-xBoxes-filler
-{
-    flex: 1 1 24px ;
-}
-
-/* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/layout/boxes.js b/ivette/src/dome/src/renderer/layout/boxes.js
index 1d9962523660cabbe561234cb1337e23dbe617d0..6dc0a7b8c92b318e001fbfb57cf91234e290f9d6 100644
--- a/ivette/src/dome/src/renderer/layout/boxes.js
+++ b/ivette/src/dome/src/renderer/layout/boxes.js
@@ -42,7 +42,7 @@ natively, place it inside a `<Scroll/>` sub-container.
 import React from 'react';
 import * as Dome from 'dome';
 import { Title } from 'dome/controls/labels' ;
-import './boxes.css' ;
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Generic Box
diff --git a/ivette/src/dome/src/renderer/layout/forms.js b/ivette/src/dome/src/renderer/layout/forms.js
index d054f84db577e35d98943177f92dee7bea5b698b..ad53e812169f6f0149e0eefc3fac577fbb6176e1 100644
--- a/ivette/src/dome/src/renderer/layout/forms.js
+++ b/ivette/src/dome/src/renderer/layout/forms.js
@@ -9,7 +9,7 @@ import React from 'react' ;
 import * as Dome from 'dome' ;
 import { SVG } from 'dome/controls/icons' ;
 import { Checkbox, Radio, Select as Selector } from 'dome/controls/buttons' ;
-import './forms.css' ;
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Utilities
diff --git a/ivette/src/dome/src/renderer/layout/frames.js b/ivette/src/dome/src/renderer/layout/frames.js
deleted file mode 100644
index 68fb995879dda8923570ad4afda19d96e5ce1488..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/layout/frames.js
+++ /dev/null
@@ -1,207 +0,0 @@
-// --------------------------------------------------------------------------
-// --- Frames
-// --------------------------------------------------------------------------
-
-/** @module dome/layout/frames */
-
-import React from 'react' ;
-import * as Dome from 'dome' ;
-import { dispatch } from 'dome/misc/register' ;
-import { Vfill } from 'dome/layout/boxes' ;
-import { SideBar } from 'dome/layout/sidebars' ;
-import { ToolBar } from 'dome/layout/toolbars' ;
-import { TabsBar , TabContent } from 'dome/layout/tabs' ;
-import { Splitter } from 'dome/layout/splitters' ;
-
-const callbacks = (f,g) => (f ? (g ? (id) => { f(id); g(id); } : f ) : g );
-
-// --------------------------------------------------------------------------
-// --- Frame Component
-// --------------------------------------------------------------------------
-
-/**
-   @class
-   @summary Main view with optional tabs, toolbar and sidebar.
-   @property {string} [settings] - User-setting base name for
-   persistent selection and customization
-   @property {string} [selectedTab] - Currently selected tab
-   @property {string} [selectedItem] - Currently selected sidebar item
-   @property {string} [defaultTab] - Default selected tab (see also default tab's property)
-   @property {string} [defaultItem] - Default selected item
-   @property {function} [onTabClose] - tab closing callback
-   @property {function} [onTabSelection] - tab selection callback
-   @property {function} [onItemSelection] - sidebar item selection callback
-   @property {boolean} [hideToolbar] - hide tool bar (default is `false`)
-   @property {boolean} [hideTabsbar] - hide tabs bar (default is `false`)
-   @description
-
-   ##### Content
-   The Frame layout and its decorations are specified according to
-   the type of its children elements:
-   - [Tab](module-dome_layout_tabs.Tab.html), if any, will be rendered into an optional
-   [TabsBar](module-dome_layout_tabs.TabsBar.html) and the selected tab content
-   will be rendered into the main content of the frame.
-   - [Sidebar items](module-dome_layout_sidebars.html), if any, will be rendered
-   inside a sidebar on the left of the frame.
-   - [Toolbar items](module-dome_layout_toolbars.html), if any,
-   will be rendered inside a toolbar on top of the frame.
-   - The remaining elements will be rendered (inside a vertical box) into the
-   main content the frame, provided there is no defined tab.
-
-
-   ##### Callbacks
-   Both general callbacks and tab ones are invoked
-   when the user select or close a tab. The tab callbacks are invoked _before_ the
-   frame ones.
-
-
-   ##### Settings
-   When provided, user selection will be saved in user's settings
-   under the following keys (when relevant):
-   - `'<settings>.dome.tab'` tab selection
-   - `'<settings>.dome.item'` item selection
-   - `'<settings>.dome.sidebar'` position of side-bar splitter
-   - `'<settings>.dome.section'` visibility of side-bar sections
-*/
-
-export class Frame extends React.Component
-{
-
-  constructor(props)
-  {
-    super(props);
-    const settings = props.settings ;
-    const derived = ( selected , user , def ) =>
-          (selected || ( settings && Dome.getWindowSetting( settings + user ) ) || def) ;
-    var selectedTab = derived( props.selectedTab , '.dome.tab' , props.defaultTab );
-    var selectedItem = derived( props.selectedItem , '.dome.item' , props.defaultItem );
-    this.state = { selectedTab , selectedItem };
-    this.handleSelectTab = this.handleSelectTab.bind(this);
-    this.handleSelectItem = this.handleSelectItem.bind(this);
-  }
-
-  // --------------------------------------------------------------------------
-  // --- Life Cycle
-  // --------------------------------------------------------------------------
-
-  componentWillMount() {
-    const onTabSelection = this.props.onTabSelection ;
-    if (onTabSelection) {
-      const stateId = this.state.selectedTab ;
-      const propsId = this.props.selectedTab ;
-      if (stateId !== propsId) setImmediate(() => onTabSelection( stateId ));
-    }
-    const onItemSelection = this.props.onItemSelection ;
-    if (onItemSelection) {
-      const stateId = this.state.selectedItem ;
-      const propsId = this.props.selectedItem ;
-      if (stateId !== propsId) setImmediate(() => onItemSelection( stateId ));
-    }
-  }
-
-  componentDidUpdate() {
-    const tabid = this.props.selectedTab ;
-    if (tabid && this.state.selectedTab !== tabid)
-      this.setState( { selectedTab: tabid } );
-    const itemid = this.props.selectedItem ;
-    if (itemid && this.state.selectedItem !== itemid)
-      this.setState( { selectedItem: itemid } );
-  }
-
-  // --------------------------------------------------------------------------
-  // --- Update
-  // --------------------------------------------------------------------------
-
-  handleSelectTab(id) {
-    this.setState( { selectedTab: id } );
-    const settings = this.props.settings ;
-    const onSelect = this.props.onTabSelection ;
-    settings && Dome.setWindowSetting( settings + '.dome.tab' , id );
-    onSelect && onSelect( id );
-  }
-
-  handleSelectItem(id) {
-    this.setState( { selectedItem: id } );
-    const settings = this.props.settings ;
-    const onSelect = this.props.onItemSelection ;
-    settings && Dome.setWindowSetting( settings + '.dome.item' , id );
-    onSelect && onSelect( id );
-  }
-
-  // --------------------------------------------------------------------------
-  // --- Rendering
-  // --------------------------------------------------------------------------
-
-  render() {
-
-    const content = dispatch( this.props.children , {
-      tabsItems: 'DOME_TABSBAR_ITEM',
-      sideItems: 'DOME_SIDEBAR_ITEM',
-      toolItems: 'DOME_TOOLBAR_ITEM',
-      others: undefined
-    });
-
-    var selection = this.state.selectedTab ;
-    if (selection === undefined)
-      React.Children.forEach( content.tabsItems , (tab) => {
-        if (!selection && tab && tab.props.default)
-          selection = tab.props.ident ;
-      });
-
-    const makeTab = (tab) => {
-      const onSelection = callbacks( tab.props.onSelection , this.handleSelectTab );
-      const onClose  = callbacks( tab.props.onClose , this.props.onTabClose );
-      const props = { selection , onSelection , onClose , content: false } ;
-      return React.cloneElement( tab , props , null );
-    };
-
-    const makeContent = (tab) => {
-      const props = {
-        selection ,
-        onSelection : undefined,
-        onClose : undefined,
-        content: true
-      };
-      return React.cloneElement( tab , props );
-    };
-
-    var tabs , main ;
-    const settings = this.props.settings ;
-    const tools = content.toolItems ;
-
-    if (content.tabsItems) {
-      tabs = React.Children.map( content.tabsItems , (tab) => tab && makeTab(tab) );
-      main = React.Children.map( content.tabsItems , (tab) => tab && makeContent(tab) );
-      if (content.others) console.warn('Unexpected main content for Frame with Tabs');
-    } else {
-      tabs = undefined ;
-      main = content.others ;
-    }
-
-    if (content.sideItems) {
-      const sidebarOffset = settings && (settings + '.dome.sidebar');
-      const sidebarSections = settings && (settings + '.dome.section');
-      main = (
-        <Splitter dir='LEFT' settings={sidebarOffset} >
-          { <SideBar
-                settings={sidebarSections}
-                selection={this.state.selectedItem}
-                onSelection={this.handleSelectItem}
-              >{content.sideItems}</SideBar> }
-          { main }
-        </Splitter>
-      );
-    }
-
-    return (
-      <Vfill>
-        { !this.props.hideToolbar && tools && <ToolBar>{tools}</ToolBar> }
-        { !this.props.hideTabsbar && tabs && <TabsBar>{tabs}</TabsBar> }
-        { main }
-      </Vfill>
-    );
-  }
-
-}
-
-// --------------------------------------------------------------------------
diff --git a/ivette/src/dome/src/renderer/layout/grids.css b/ivette/src/dome/src/renderer/layout/grids.css
deleted file mode 100644
index f7f8ce35b9f83a6f47acb0cb81f7b2bf6b9d6913..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/layout/grids.css
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* --- GridLayout Styles                                                  --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xGridLayout {
-    flex: 1 1 auto ;
-    width: 100% ;
-    height: 100% ;
-    position: relative ;
-    overflow: auto ;
-}
-
-.dome-xGridLayout-splitter {
-    z-index: 1 ;
-    position: absolute ;
-}
-
-.dome-xGridLayout-hsplit { cursor: col-resize }
-.dome-xGridLayout-hdrag  { cursor: ew-resize  }
-.dome-xGridLayout-vsplit { cursor: row-resize }
-.dome-xGridLayout-vdrag  { cursor: ns-resize  }
-
-.dome-xGridLayout-target {
-    z-index: 2 ;
-    position: absolute ;
-    border-radius: 12px ;
-    background: #64b4f0 ;
-    opacity: 0.5 ;
-}
-
-.dome-xGridLayout-holder {
-    z-index: -1 ;
-    position: absolute ;
-    overflow: hidden ;
-    background: lightblue ;
-    opacity: 0.5 ;
-}
-
-.dome-xGridLayout-item {
-    z-index: 0 ;
-    position: absolute ;
-    overflow: hidden ;
-}
-
-.dome-xGridLayout-item.dome-dragging
-{
-    z-index: +1 ;
-    transition: all 0.1s ease-out ;
-}
-
-/* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/layout/grids.js b/ivette/src/dome/src/renderer/layout/grids.js
index 6843f5d0bceee0e84baf7707034f2544541235b2..aad4e32c7b6e21b1d36d9b17d31c74093487d254 100644
--- a/ivette/src/dome/src/renderer/layout/grids.js
+++ b/ivette/src/dome/src/renderer/layout/grids.js
@@ -11,7 +11,8 @@ import { AutoSizer } from 'react-virtualized' ;
 import { DraggableCore } from 'react-draggable' ;
 
 import * as Dome from 'dome' ;
-import './grids.css' ;
+
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Grid Utilities
diff --git a/ivette/src/dome/src/renderer/layout/sidebars.css b/ivette/src/dome/src/renderer/layout/sidebars.css
deleted file mode 100644
index ca4193112159084ad4cad634f8df75fdd4b13889..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/layout/sidebars.css
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* --- Styling SideBars                                                   --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xSideBar {
-    width: 100% ;
-    height: 100% ;
-    overflow-x: hidden ;
-    overflow-y: auto ;
-    padding-top: 6px ;
-    padding-bottom: 6px ;
-}
-
-.dome-window-active .dome-xSideBar.dome-color-frame {
-    background: #e3e8ec ;
-}
-
-/* -------------------------------------------------------------------------- */
-/* --- SideBar Section                                                    --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xSideBarSection {
-    display: block ;
-    margin-top: 10px ;
-    margin-bottom: 10px ;
-}
-
-.dome-xSideBarSection-title {
-    padding-left: 3px ;
-    padding-right: 2px ;
-    display: flex ;
-    flew-flow: row nowrap ;
-    align-items: center ;
-}
-
-.dome-xSideBarSection-title > .dome-xLabel {
-    flex: 1 1 ;
-    overflow: hidden ;
-    text-overflow: ellipsis ;
-    font-weight: bold ;
-}
-
-.dome-xSideBarSection-title > .dome-xBadge {
-    flex: 0 0 ;
-}
-
-.dome-xSideBarSection-hideshow {
-    flex: 0 0 ;
-    margin: 1px ;
-    color: #aaa ;
-    width: 32px ;
-    font-weight: normal ;
-    display: inline ;
-    visibility: hidden ;
-}
-
-.dome-xSideBarSection-title:hover .dome-xSideBarSection-hideshow {
-    visibility: visible ;
-}
-
-.dome-xSideBarSection-content {
-    overflow: hidden ;
-    transition: max-height 250ms ease-in-out ;
-}
-
-
-/* -------------------------------------------------------------------------- */
-/* --- SideBar Items                                                      --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xSideBarItem {
-    padding-left: 2px ;
-    padding-right: 2px ;
-    display: flex ;
-    flex-flow: row nowrap ;
-    align-items: center ;
-}
-
-.dome-window-active .dome-xSideBarItem.dome-active {
-    background: #ccc ;
-}
-
-.dome-window-inactive .dome-xSideBarItem.dome-active {
-    background: #ddd ;
-}
-
-.dome-xSideBarItem > .dome-xLabel {
-    flex: 1 1 ;
-    overflow: hidden ;
-    text-overflow: ellipsis ;
-    padding-left: 12px ;
-}
-
-.dome-xSideBarItem.dome-disabled > .dome-xLabel {
-    color: #b0b0b0 ;
-    fill:  #b0b0b0 ;
-}
-
-.dome-xSideBarItem > .dome-xLabel:last-child {
-    margin-right: 20px ;
-}
-
-.dome-xSideBarItem > .dome-xBadge {
-    flex: 0 0 ;
-}
-
-/* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/layout/splitters.css b/ivette/src/dome/src/renderer/layout/splitters.css
deleted file mode 100644
index 0b1e80e44131a434d16e6e165003dc7ee317d95c..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/layout/splitters.css
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* ---  XSplitter Style Sheet                                             --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xSplitter-container {
-    position: relative ;
-    width: 100% ;
-    height: 100% ;
-}
-
-.dome-xSplitPane {
-    position: relative ;
-}
-
-.dome-xSplitter-grab {
-    z-index: 1 ;
-    position: relative ;
-    border: 0 ;
-}
-
-.dome-xSplitter-h {
-    left: -1px ;
-    width: 3px ;
-    height: 100% ;
-    cursor: col-resize ;
-}
-
-.dome-xSplitter-v {
-    top: -1px ;
-    height: 3px ;
-    width: 100% ;
-    cursor: row-resize ;
-}
-
-.dome-xSplitter-no-cursor { }
-.dome-xSplitter-h-cursor  { cursor: col-resize ; }
-.dome-xSplitter-v-cursor  { cursor: row-resize ; }
-
-.dome-window-active .dome-xSplitLine {
-    background: #afafaf ;
-}
-
-.dome-window-inactive .dome-xSplitLine {
-    background: #d6d6d6 ;
-}
-
-.dome-xSplitPane, .dome-xSplitLine {
-    transition: all 0.1s ease-out ;
-}
-
-/* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/layout/splitters.js b/ivette/src/dome/src/renderer/layout/splitters.js
index 6f947ee2d10b9b168ae543c5ae2b9e44cfab87ad..5b4ced76388a4e017b0718e4e50a82abad5cde19 100644
--- a/ivette/src/dome/src/renderer/layout/splitters.js
+++ b/ivette/src/dome/src/renderer/layout/splitters.js
@@ -8,7 +8,8 @@ import _ from 'lodash' ;
 import * as React from 'react' ;
 import * as Dome from 'dome' ;
 import { Layout } from 'dome/misc/layout' ;
-import './splitters.css' ;
+
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Splitter Layout
diff --git a/ivette/src/dome/src/renderer/layout/forms.css b/ivette/src/dome/src/renderer/layout/style.css
similarity index 59%
rename from ivette/src/dome/src/renderer/layout/forms.css
rename to ivette/src/dome/src/renderer/layout/style.css
index 23a1712dc346d0bf66214dcf09bae04ded0a4c44..62a94697c92b28e2039d1a86b0a73728bba0c507 100644
--- a/ivette/src/dome/src/renderer/layout/forms.css
+++ b/ivette/src/dome/src/renderer/layout/style.css
@@ -1,3 +1,188 @@
+/* -------------------------------------------------------------------------- */
+/* --- Box Containers                                                     --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xBoxes-hbox
+{
+    display: flex ;
+    overflow: hidden ;
+    flex-flow: row nowrap ;
+    align-items: stretch ;
+}
+
+.dome-xBoxes-vbox
+{
+    display: flex ;
+    overflow: hidden ;
+    flex-flow: column nowrap ;
+    align-items: stretch ;
+}
+
+.dome-xBoxes-grid
+{
+    flex: 1 1 auto ;
+    overflow: auto ;
+    display: grid ;
+    display: grid;
+    grid-auto-rows: auto;
+    grid-auto-flow: row;
+    align-items: stretch;
+    align-content: start;
+    justify-content: start;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- Extensibility                                                      --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xBoxes-pack
+{
+    flex: 0 0 auto ;
+    align-self: flex-start ;
+}
+
+.dome-xBoxes-box
+{
+    flex: 0 0 auto ;
+}
+
+.dome-xBoxes-fill
+{
+    flex: 1 1 auto ;
+}
+
+.dome-xBoxes-scroll
+{
+    flex: 1 1 auto ;
+    overflow: auto ;
+}
+
+.dome-container > .dome-xBoxes-fill
+{
+    width:  100% ;
+    height: 100% ;
+}
+
+.dome-container > .dome-xBoxes-scroll
+{
+    width:  100% ;
+    height: 100% ;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- Spaces                                                             --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xBoxes-space
+{
+    flex: 0 1 24px ;
+}
+
+.dome-xBoxes-filler
+{
+    flex: 1 1 24px ;
+}
+
+/* -------------------------------------------------------------------------- */
+/* ---  XSplitter Style Sheet                                             --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xSplitter-container {
+    position: relative ;
+    width: 100% ;
+    height: 100% ;
+}
+
+.dome-xSplitPane {
+    position: relative ;
+}
+
+.dome-xSplitter-grab {
+    z-index: 1 ;
+    position: relative ;
+    border: 0 ;
+}
+
+.dome-xSplitter-h {
+    left: -1px ;
+    width: 3px ;
+    height: 100% ;
+    cursor: col-resize ;
+}
+
+.dome-xSplitter-v {
+    top: -1px ;
+    height: 3px ;
+    width: 100% ;
+    cursor: row-resize ;
+}
+
+.dome-xSplitter-no-cursor { }
+.dome-xSplitter-h-cursor  { cursor: col-resize ; }
+.dome-xSplitter-v-cursor  { cursor: row-resize ; }
+
+.dome-window-active .dome-xSplitLine {
+    background: #afafaf ;
+}
+
+.dome-window-inactive .dome-xSplitLine {
+    background: #d6d6d6 ;
+}
+
+.dome-xSplitPane, .dome-xSplitLine {
+    transition: all 0.1s ease-out ;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- GridLayout Styles                                                  --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xGridLayout {
+    flex: 1 1 auto ;
+    width: 100% ;
+    height: 100% ;
+    position: relative ;
+    overflow: auto ;
+}
+
+.dome-xGridLayout-splitter {
+    z-index: 1 ;
+    position: absolute ;
+}
+
+.dome-xGridLayout-hsplit { cursor: col-resize }
+.dome-xGridLayout-hdrag  { cursor: ew-resize  }
+.dome-xGridLayout-vsplit { cursor: row-resize }
+.dome-xGridLayout-vdrag  { cursor: ns-resize  }
+
+.dome-xGridLayout-target {
+    z-index: 2 ;
+    position: absolute ;
+    border-radius: 12px ;
+    background: #64b4f0 ;
+    opacity: 0.5 ;
+}
+
+.dome-xGridLayout-holder {
+    z-index: -1 ;
+    position: absolute ;
+    overflow: hidden ;
+    background: lightblue ;
+    opacity: 0.5 ;
+}
+
+.dome-xGridLayout-item {
+    z-index: 0 ;
+    position: absolute ;
+    overflow: hidden ;
+}
+
+.dome-xGridLayout-item.dome-dragging
+{
+    z-index: +1 ;
+    transition: all 0.1s ease-out ;
+}
+
 /* -------------------------------------------------------------------------- */
 /* --- Form Containers                                                    --- */
 /* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/layout/tabs.css b/ivette/src/dome/src/renderer/layout/tabs.css
deleted file mode 100644
index f604114d0a72f62f98505e1456e6111fc7375c4e..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/layout/tabs.css
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* --- Tabs & Tab Style Sheet                                             --- */
-/* -------------------------------------------------------------------------- */
-
-/* Tabs Bar */
-
-.dome-xTabsBar {
-    flex: 0 1 auto ;
-    position: relative ;
-    height: 20px ;
-    width: calc( 100% + 1px ); /* hides last border */
-    display: flex ;
-    flex: row wrap ;
-    border-width: 1px ;
-    border-bottom-style: solid ;
-}
-
-/* Tab Content */
-
-.dome-xTab-content {
-    width: 100% ;
-    height: 100% ;
-}
-
-/* Tab Item */
-
-.dome-xTab {
-    flex: 1 1 150px ;
-    position: relative ;
-    font-size: 10px ;
-    text-align: center ;
-    padding: 4px 20px 4px 20px ;
-    border-color: inherit ;
-    border-width: 1px ;
-    border-top-style: none ;
-    border-bottom-style: none ;
-    border-left-style: none ;
-    border-right-style: solid ;
-}
-
-.dome-window-inactive .dome-xTab.dome-inactive {
-    color: #606060 ;
-    border-color: inherit ;
-}
-
-.dome-xTab.dome-inactive:hover {
-    background: #bababa ;
-}
-
-.dome-xTab.dome-inactive {
-    color: #606060 ;
-    border-color: #9c9c9c ;
-    background: #b4b4b4 ;
-}
-
-.dome-window-inactive .dome-xTab.dome-inactive {
-    color: #b0b0b0 ;
-    background: #e6e6e6 ;
-}
-
-/* Closing Tab button */
-
-.dome-xTab-closing {
-    display: inline ;
-    border-radius: 4px ;
-    position: absolute ;
-    width: 12px ;
-    height: 12px ;
-    padding: 2px ;
-    top: 2px ;
-    opacity: 0 ;
-    transition: opacity .1s linear 0.1s , background .1s linear 0.1s ;
-}
-
-.dome-platform-darwin .dome-xTab-closing {
-    right: initial ;
-    left: 5px ;
-}
-
-.dome-xTab-closing {
-    right: 5px ;
-    left: initial ;
-}
-
-.dome-active .dome-xTab-closing:hover {
-    background: #c0c0c0 ;
-}
-
-.dome-inactive .dome-xTab-closing:hover {
-    background: #a0a0a0 ;
-}
-
-.dome-xTab:hover .dome-xTab-closing , .dome-xTab:hover .dome-xTab-closing
-{
-    opacity: 1 ;
-}
-
-/* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/dome.css b/ivette/src/dome/src/renderer/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/dome.css
rename to ivette/src/dome/src/renderer/style.css
diff --git a/ivette/src/dome/src/renderer/table/tables.css b/ivette/src/dome/src/renderer/table/style.css
similarity index 100%
rename from ivette/src/dome/src/renderer/table/tables.css
rename to ivette/src/dome/src/renderer/table/style.css
diff --git a/ivette/src/dome/src/renderer/table/views.js b/ivette/src/dome/src/renderer/table/views.js
index d0a4bc112cedc9f1b385f8d71e444bc16638321d..d298a82af59ee369ab978bc12d4d4e9bf6aa88ce 100644
--- a/ivette/src/dome/src/renderer/table/views.js
+++ b/ivette/src/dome/src/renderer/table/views.js
@@ -15,7 +15,8 @@ import {
   Table as VTable,
   Column as VColumn
 } from 'react-virtualized' ;
-import './tables.css' ;
+
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Header Renderer
diff --git a/ivette/src/dome/src/renderer/text/editors.css b/ivette/src/dome/src/renderer/text/editors.css
deleted file mode 100644
index 664097705dc1179709d0fe70c3d091b9957b081b..0000000000000000000000000000000000000000
--- a/ivette/src/dome/src/renderer/text/editors.css
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* --- Styling Code Editors                                               --- */
-/* -------------------------------------------------------------------------- */
-
-.dome-xText {
-    flex: 1 1 auto ;
-    overflow: hidden ;
-    position: relative ;
-    fontSize: smaller ;
-}
-
-.dome-xText .CodeMirror {
-    width: 100% ;
-    height: 100% ;
-}
-
-.dome-xText-hover {
-    background: lightgreen ;
-}
-
-.dome-xText-select {
-    background: #ffda95 !important ;
-}
-
-.dome-xText-select.dome-xText-hover {
-    background: orange !important ;
-}
-
-/* -------------------------------------------------------------------------- */
diff --git a/ivette/src/dome/src/renderer/text/editors.js b/ivette/src/dome/src/renderer/text/editors.js
index b54e4e829fdea10c882a21d90ebd19a0bcde5a42..aece9b84143297c1ae11852e4dec4c9d94450839 100644
--- a/ivette/src/dome/src/renderer/text/editors.js
+++ b/ivette/src/dome/src/renderer/text/editors.js
@@ -8,8 +8,9 @@ import _ from 'lodash' ;
 import React from 'react' ;
 import * as Dome from 'dome' ;
 import CodeMirror from 'codemirror/lib/codemirror.js' ;
+
+import './style.css' ;
 import 'codemirror/lib/codemirror.css' ;
-import './editors.css' ;
 
 const CSS_HOVERED = 'dome-xText-hover' ;
 const CSS_SELECTED = 'dome-xText-select' ;
diff --git a/ivette/src/dome/src/renderer/layout/pages.js b/ivette/src/dome/src/renderer/text/pages.js
similarity index 95%
rename from ivette/src/dome/src/renderer/layout/pages.js
rename to ivette/src/dome/src/renderer/text/pages.js
index a630356d953c8650310ac466f555d7358fac305c..ca8b486e080521af0ac5c26f9d2410baca5a6930 100644
--- a/ivette/src/dome/src/renderer/layout/pages.js
+++ b/ivette/src/dome/src/renderer/text/pages.js
@@ -3,7 +3,7 @@
 // --------------------------------------------------------------------------
 
 /**
-   @module dome/layout/pages
+   @module dome/text/pages
    @description
    A collection of text area and elements do render textual content.
 
@@ -24,8 +24,8 @@
 */
 
 import React from 'react' ;
-import { AutoSizer } from 'react-virtualized' ;
-import './pages.css' ;
+
+import './style.css' ;
 
 // --------------------------------------------------------------------------
 // --- Page
diff --git a/ivette/src/dome/src/renderer/layout/pages.css b/ivette/src/dome/src/renderer/text/style.css
similarity index 71%
rename from ivette/src/dome/src/renderer/layout/pages.css
rename to ivette/src/dome/src/renderer/text/style.css
index 6d593e550c77eadf0113b3e25e5d41c7282a0059..be7f8ea0dd15cccbb7f192d1f42ba4541f7073e2 100644
--- a/ivette/src/dome/src/renderer/layout/pages.css
+++ b/ivette/src/dome/src/renderer/text/style.css
@@ -1,3 +1,31 @@
+/* -------------------------------------------------------------------------- */
+/* --- Styling Code Editors                                               --- */
+/* -------------------------------------------------------------------------- */
+
+.dome-xText {
+    flex: 1 1 auto ;
+    overflow: hidden ;
+    position: relative ;
+    fontSize: smaller ;
+}
+
+.dome-xText .CodeMirror {
+    width: 100% ;
+    height: 100% ;
+}
+
+.dome-xText-hover {
+    background: lightgreen ;
+}
+
+.dome-xText-select {
+    background: #ffda95 !important ;
+}
+
+.dome-xText-select.dome-xText-hover {
+    background: orange !important ;
+}
+
 /* -------------------------------------------------------------------------- */
 /* --- Styling Page                                                       --- */
 /* -------------------------------------------------------------------------- */
diff --git a/ivette/src/frama-c/LabViews.tsx b/ivette/src/frama-c/LabViews.tsx
index a0225a87eb03ee695209ace0e7303fc825380587..bf41e8ba3d498d2b22a1a9340ff263043c50241c 100644
--- a/ivette/src/frama-c/LabViews.tsx
+++ b/ivette/src/frama-c/LabViews.tsx
@@ -9,7 +9,7 @@ import React from 'react';
 import * as Dome from 'dome';
 import { Catch } from 'dome/errors';
 import { DnD, DragSource } from 'dome/dnd';
-import { SideBar, Section, Item } from 'dome/layout/sidebars';
+import { SideBar, Section, Item } from 'dome/frame/sidebars';
 import { Splitter } from 'dome/layout/splitters';
 import * as Grids from 'dome/layout/grids';
 import { Hbox, Hfill, Vfill } from 'dome/layout/boxes';
diff --git a/ivette/src/renderer/Application.tsx b/ivette/src/renderer/Application.tsx
index bb69426246641b04171c62f47d972c25b2f5ce24..10439a75ba89564f385e65850aea5776c04a71d9 100644
--- a/ivette/src/renderer/Application.tsx
+++ b/ivette/src/renderer/Application.tsx
@@ -6,8 +6,8 @@ import React from 'react';
 import * as Dome from 'dome';
 import { Vfill } from 'dome/layout/boxes';
 import { Splitter } from 'dome/layout/splitters';
-import * as Toolbar from 'dome/layout/toolbars';
-import * as Sidebar from 'dome/layout/sidebars';
+import * as Toolbar from 'dome/frame/toolbars';
+import * as Sidebar from 'dome/frame/sidebars';
 
 import './style.css';
 
diff --git a/ivette/src/renderer/Controller.tsx b/ivette/src/renderer/Controller.tsx
index a5ce00a483587b0c8f415d2621939b7cb80037f4..dceb1b74fdeb7cd6e931da81ac96448b5bfa40bc 100644
--- a/ivette/src/renderer/Controller.tsx
+++ b/ivette/src/renderer/Controller.tsx
@@ -5,11 +5,12 @@
 import React from 'react';
 import * as Dome from 'dome';
 
-import { Button as ToolButton, ButtonGroup, Space } from 'dome/layout/toolbars';
+import { Button as ToolButton, ButtonGroup, Space } from 'dome/frame/toolbars';
 import { LED, IconButton } from 'dome/controls/buttons';
 import { Label, Code } from 'dome/controls/labels';
 import { RichTextBuffer } from 'dome/text/buffers';
 import { Text } from 'dome/text/editors';
+
 import * as Server from 'frama-c/server';
 import { Component, TitleBar } from 'frama-c/LabViews';