Skip to content

Instantly share code, notes, and snippets.

@lukesargeant
Last active August 1, 2017 15:24
Show Gist options
  • Save lukesargeant/939cd65f924b5d45ac6a to your computer and use it in GitHub Desktop.
Save lukesargeant/939cd65f924b5d45ac6a to your computer and use it in GitHub Desktop.
Tabset overflow
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle'
});
{{#tab-set class="some-tab-set"}}
<button class="some-tab">Tab one</button>
<button class="some-tab">Tab two</button>
<button class="some-tab">Tab three</button>
<button class="some-tab">Tab four</button>
<button class="some-tab">Tab five</button>
<button class="some-tab">Tab six</button>
<button class="some-tab">Tab seven</button>
{{/tab-set}}
import Ember from 'ember';
export default Ember.Service.extend({
init() {
this._super();
this.updateDimensions();
window.onresize = () => {
this.updateDimensions();
};
},
updateDimensions() {
this.setProperties({
width: window.innerWidth,
height: window.innerHeight
});
}
});
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.tab-set {
display: flex;
white-space: nowrap;
}
.tab-set > * {
flex: 1 1 auto;
overflow: hidden;
cursor: pointer;
}
.tab-set_overflow {
flex: 0 0 3em;
border: 0 none;
background: transparent;
color: inherit;
cursor: pointer;
}
.some-tab-set {
color: white;
background: #777;
border-bottom: 1px solid black;
}
.some-tab {
background: #444;
margin-right: 1px;
padding: .5em 1em;
border: 0 none;
color: inherit;
cursor: pointer;
/*text-overflow:ellipsis;*/
transition: flex-shrink 200ms;
}
.some-tab:hover {
background: #555;
flex-shrink: 0;
text-overflow: clip;
}
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['tab-set'],
windowDimensions: Ember.inject.service(),
hasOverflowTabs: Ember.computed('windowDimensions.{width,height}', function() {
// let { width, height } = this.get('windowDimensions').getProperties(['width', 'height']);
// return width < 400;
return false;
})
});
{{yield}}
{{#if hasOverflowTabs}}
<button class="tab-set_overflow">...</button>
{{/if}}
{
"version": "0.5.3",
"EmberENV": {
"FEATURES": {}
},
"options": {
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.3.1/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.3.3/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment