Comments (5)
Hey that's great news! Maybe we could consider
- adding the possibility of providing a custom component for the checkbox instead of relying on css only to style it to correspond to one's design system ?
- floating table header without the need to specify a fixed table height, it's doable in user land but cumbersome (we do it with 2 ember-tables synchronized in a parent component)
from ember-table.
I've cut the first pre-release. v6.0.0-0 is out there, contains the migration to a more accurate scale calculation method.
from ember-table.
The most recent project I built with ember-table had a highly stylized table and we had a lot of issues getting table borders to work with position:sticky
table elements.
You can see these visual glitches even on ember-table's own documentation. The header specifies a border style, and it allows content to "peek thru" where the border would be as you scroll. To save you a bunch of SO dumpster diving, this isn't ember-table's fault. It's due to bugs in Chrome's table renderer that are in some cases a decade old, and blocked by undefined behavior in the HTML table spec. Help isn't coming.
One possible solution is to avoid position:sticky
altogether in tables. You may have found yourself in this situation before and solved it by creating 2 or more ember-tables and keeping their scroll position in sync somehow. E.g. your header is an ember-table with 1 row. your fixed left column is an ember-table with 1 column. and finally the rest of the content is a third ember-table.
This is a heavy handed workaround, and if it's bothersome enough, perhaps ember-table could implement sticky rows & cols by moving the "many tables, synchronized" into the lib as an implementation detail; saving all the ember-table consumers. And ditch position:sticky
and all its foreverbugs
from ember-table.
Thought of another problem with the use of position:sticky
. The resize handles can't overlap the line between 2 header cells, which is what users expect.
Expectation: you grab the line to resize
Actual: the handle is on the right edge of the previous cell
You can't set say right: -5px
to push it over; it'll be drawn behind the next cell in the header, so you can't interact with the right side of the handle. The only thing that works for modifying draw order of position:sticky
elements in tables is to give them cascading z-indexes. Like if you have 10 columns, your first column has z-index 10, your second one has z-index 9, etc. z-index doesn't compose well so it's not a good solution. ember-table already uses z-index for some stuff, and it bleeds into the rest of the application.
from ember-table.
@apellerano-pw I appreciate the analysis and feedback, but I'm not sure any of that work is actionable in the scope of an upcoming major version release. I suspect that analysis might be better in an independent issue.
@gwak I think those changes sound reasonable, but I'm not going to block a major release on them. The sound like reasonable enhancements. I expect the composability of the system is easier to iterate on after we adopt Glimmer components, maybe in the guise of breaking changes for a major version following this one. I'm amenable.
from ember-table.
Related Issues (20)
- Unable to use the addon with current version of ember and embroider
- missing `abort` typing for `onSelect`
- table column doesn't respect set minWidth and maxWidth
- Add ember-raf-scheduler registerWaiter using `setupForTest` or document it? HOT 3
- Proposal: Ember Table 5 HOT 1
- dummy app not working
- Ember auto import related error getting thrown when installing ember table v4.0.0 HOT 9
- Newly added cells are not visible when using "*-slack" size constraints
- Ember modifier `{{on click` does not work HOT 4
- Performant occlusion of columns (module not found when extending `ember-tbody`)
- pnpm error upon fresh install in embroider app HOT 2
- Typescript Support HOT 6
- htmlSafe imported incorrectly HOT 3
- Sass issues HOT 2
- Making the table width 100% HOT 1
- Improved performance during css transitions
- ember-data:deprecate-array-like if rows is a Record
- ember-table-loading-more throws TypeError when calling this.element while being destroyed
- More complete basic CSS would be useful
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ember-table.