NativeScript / NativeScript/NativeScript

TabView styling and css inheritance

Open
#5,803 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement feature tab-view
Dominant language
TypeScript
Stars
25.7k
Forks
1.7k
Avg merge
1d 5h
Merged PRs (30d)
35

Description

Problem: There are no separate elements for the tab content and the tab strip item. The TabViewItem element wraps both. This breaks css inheritance - the css is applied to both content and tab strip, but you can't override the css separately.

There are also some discrepancies between properties and between platforms:

  • font-size and text-transform have native implementations on TabViewItem, color doesn't. There is however tab-text-color which applies color to all tab strip items.
  • text-transform is for some reason not an inherited property
  • font-size is hard coded for iOS TabViewItems to 10.

Proposed solution:
As a rule I think inherited css properties shouldn't have implementations on elements that are not separately represented in the mark up.

  • Make text-transform inherited as per CSS spec.
  • Remove font-size and text-transform from TabViewItem.
  • Introduce new properties in their place on both TabView and TabViewItem tab-text-font-size and tab-text-transform.
  • Optionally introduce more font properties, e.g. tab-text-font, tab-text-font-style, tab-text-font-family.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the TabView and TabViewItem implementations and their platform-specific styling code. Compare current inheritance and native property behavior across iOS and Android, then check how existing tab-text-color is exposed. Done means inherited text-transform behaves per CSS, separate tab text properties cover the proposed font size and transform behavior, and platform discrepancies are resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
css, typescript
Domain
frontend, mobile-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.