DevTools/Features/Highlighter

< DevTools‎ | Features
Revision as of 18:25, 27 September 2011 by Kdangoor (talk | contribs)
Please use "Edit with form" above to edit this page.

Status

Highlighter
Stage Development
Status In progress
Release target Firefox 10
Health OK
Status note Major parts landed. More being reviewed/landing.

{{#set:Feature name=Highlighter

|Feature stage=Development |Feature status=In progress |Feature version=Firefox 10 |Feature health=OK |Feature status note=Major parts landed. More being reviewed/landing. }}

Team

Product manager Kevin Dangoor
Directly Responsible Individual Kevin Dangoor
Lead engineer Rob Campbell
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Teodosia Pop
UX lead `
Product marketing lead `
Operations lead `
Additional members Paul Rouget

{{#set:Feature product manager=Kevin Dangoor

|Feature feature manager=Kevin Dangoor |Feature lead engineer=Rob Campbell |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=Teodosia Pop |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=Paul Rouget }}

Open issues/risks

  • What happens to the Highlighter Toolbar breadcrumbs when you have a very deeply nested tree? Is there truncation at one part of the tree or other? (my initial thought is to truncate at the tree's root)
  • Finalize naming of the tool and associated terminology

Stage 1: Definition

1. Feature overview

The Highlighter is a web designer-oriented feature that was initially planned for Firefox 4 (as the Inspector) but was not ready in time to ship. The time in between has allowed us to rethink the tool.

The Highlighter is a visual entry point into tools that help web developers work om their page designs. It gets its name from the distinctive way in which it highlights an element on the page. The Highlighter presents some information and controls right near the element itself, making the most common operations quick and easy.

The Highlighter is a gateway to "element-centric" tools. The most important of these tools is the Style Inspector, which provides detailed information about the CSS applied to the selected node. These other tools are selected via a toolbar that also provides quick access to other elements around the highlighted node.

It is also planned that the HTML Tree view will be available as another way to move the highlight from one node to another.

2. Users & use cases

All web developers and designers of many different skill levels need to work with CSS and therefore will use the Highlighter regularly.

Tracking Down a Styling Issue

The Highlighter is part of the Font Fixing use case.

Learning About a Page

Starting with the original "developer tool" for the web, View Source, people have always used tools to look at existing sites and learn about what makes them work. The Highlighter and the element-centric tools that are accessed through it can help with this.

On the front page of CNN.com, there is an accordion widget. How does that get its sleek grey gradient?

Making Common Changes To Nodes

Add/remove CSS classes, manipulate the ID

3. Dependencies

`

4. Requirements

As a new feature, this should be designed to be e10s ready.

Non-goals

The initial version does not need to be remotable. The initial version does not support multiple element selection.

Stage 2: Design

5. Functional specification

 

Terminology

The tool that lets you visually select an element on that page for use by "element-centric" tools (such as the Style Inspector) is called the Highlighter. It has a menu item on the Mac at Tools->Web Developer->Highlighter and on Windows at Firefox->Web Developer->Highlighter. You can also get to it via a "Highlight Element" context menu item.

The Highlighter has two modes:

  • Highlight mode – as you move the mouse around, the highlight follows until you click a page element
  • Selected mode – an element is selected and you can freely move the mouse around without changing the selection

The Highlighter Toolbar has a button, labeled "Highlight" that switches between the Highlight and Selected modes.


Invoking the Highlighter

You can launch the Highlighter by right-clicking on an element and selecting "Highlight Element" from the context menu (F1). This will bring the Highlighter into view with the element under the cursor already selected. The element is in the "locked" state.

You can also launch the Highlighter via the "Web Developer" menu ("Highlighter" menu option) (F2). The Highlighter will start out in the "highlight" mode.

When the Developer Toolbar lands, there will also be a Highlighter button there.

Finally, you can use the command line to highlight an element (F3). Multiple selected elements are not supported right now.

Modes

The Highlighter has two modes: "highlight" and "selected". In "highlight" mode, moving the mouse around will highlight the element of the page that's under the cursor. If you click on the element, you switch to "selected" mode and you can then move your mouse around without changing which element is highlighted. You can click the "Highlight" button in the Highlighter Toolbar to switch back into highlight mode.

Highlighted Element Display

When an element is highlighted, the rest of the page is dimmed. Near the element, there is an "Infobar" that provides a quick view of information that is useful to page designers (see below).

Around the element, the margins and padding are displayed (F4).

Infobar

 

When you highlight a page element, the "infobar" appears to quickly give you the most useful information about that element.

Features:

  • displays tag name, ID, CSS classes
  • clicking on a class name toggles that class for the element
  • add a class (F5)
  • add an ID to an element that does not have one (F6)
  • edit the ID on an element (F7)

Highlighter Toolbar

 

The Highlighter Toolbar appears above the Developer Toolbar at the bottom of the window and provides access to element-oriented tools and quick, precise access to other elements.

Features:

  • "Highlight" button switches between highlight (choose an element) and selected modes (F8)
  • Buttons toggle the tools sidebar on/off and which tool is in the sidebar. For example, clicking the Styles button will show the style inspector. The initial expected buttons cover the Layout and Styles. (F9)
  • Breadcrumb-style navigation from the selected element all the way up to the top of the document and down to the next child
  • Button to slide the toolbar up and make room for the HTML Tree (F10)

Sidebar

Today's screens tend to be wider than they are tall. By placing as many tools as possible in a sidebar on the right, we can take better advantage of the available screen real estate.

Features:

  • As with the Web Console, opening a tool in the sidebar changes the viewport size but does not cause a reflow (instead adding a scrollbar if necessary) (F11)
  • Also similar to the Web Console, tools opened in the sidebar can be popped out into separate windows. (F12)

6. User experience design

In progress mockups are here:

https://wiki.mozilla.org/User:Rcampbell/DevToolsPlanning

Stage 3: Planning

7. Implementation plan

`

8. Reviews

Security review

`

Privacy review

`

Localization review

`

Accessibility

`

Quality Assurance review

https://wiki.mozilla.org/QA/Waverley/Developer-Tools/Highlighter/TestPlan

Operations review

`

Stage 4: Development

9. Implementation

`

Stage 5: Release

10. Landing criteria

` {{#set:Feature open issues and risks=* What happens to the Highlighter Toolbar breadcrumbs when you have a very deeply nested tree? Is there truncation at one part of the tree or other? (my initial thought is to truncate at the tree's root)

  • Finalize naming of the tool and associated terminology

|Feature overview=The Highlighter is a web designer-oriented feature that was initially planned for Firefox 4 (as the Inspector) but was not ready in time to ship. The time in between has allowed us to rethink the tool.

The Highlighter is a visual entry point into tools that help web developers work om their page designs. It gets its name from the distinctive way in which it highlights an element on the page. The Highlighter presents some information and controls right near the element itself, making the most common operations quick and easy.

The Highlighter is a gateway to "element-centric" tools. The most important of these tools is the Style Inspector, which provides detailed information about the CSS applied to the selected node. These other tools are selected via a toolbar that also provides quick access to other elements around the highlighted node.

It is also planned that the HTML Tree view will be available as another way to move the highlight from one node to another. |Feature users and use cases=All web developers and designers of many different skill levels need to work with CSS and therefore will use the Highlighter regularly.

Tracking Down a Styling Issue

The Highlighter is part of the Font Fixing use case.

Learning About a Page

Starting with the original "developer tool" for the web, View Source, people have always used tools to look at existing sites and learn about what makes them work. The Highlighter and the element-centric tools that are accessed through it can help with this.

On the front page of CNN.com, there is an accordion widget. How does that get its sleek grey gradient?

Making Common Changes To Nodes

Add/remove CSS classes, manipulate the ID |Feature dependencies=` |Feature requirements=As a new feature, this should be designed to be e10s ready. |Feature non-goals=The initial version does not need to be remotable. The initial version does not support multiple element selection. |Feature functional spec= 

Terminology

The tool that lets you visually select an element on that page for use by "element-centric" tools (such as the Style Inspector) is called the Highlighter. It has a menu item on the Mac at Tools->Web Developer->Highlighter and on Windows at Firefox->Web Developer->Highlighter. You can also get to it via a "Highlight Element" context menu item.

The Highlighter has two modes:

  • Highlight mode – as you move the mouse around, the highlight follows until you click a page element
  • Selected mode – an element is selected and you can freely move the mouse around without changing the selection

The Highlighter Toolbar has a button, labeled "Highlight" that switches between the Highlight and Selected modes.


Invoking the Highlighter

You can launch the Highlighter by right-clicking on an element and selecting "Highlight Element" from the context menu (F1). This will bring the Highlighter into view with the element under the cursor already selected. The element is in the "locked" state.

You can also launch the Highlighter via the "Web Developer" menu ("Highlighter" menu option) (F2). The Highlighter will start out in the "highlight" mode.

When the Developer Toolbar lands, there will also be a Highlighter button there.

Finally, you can use the command line to highlight an element (F3). Multiple selected elements are not supported right now.

Modes

The Highlighter has two modes: "highlight" and "selected". In "highlight" mode, moving the mouse around will highlight the element of the page that's under the cursor. If you click on the element, you switch to "selected" mode and you can then move your mouse around without changing which element is highlighted. You can click the "Highlight" button in the Highlighter Toolbar to switch back into highlight mode.

Highlighted Element Display

When an element is highlighted, the rest of the page is dimmed. Near the element, there is an "Infobar" that provides a quick view of information that is useful to page designers (see below).

Around the element, the margins and padding are displayed (F4).

Infobar

 

When you highlight a page element, the "infobar" appears to quickly give you the most useful information about that element.

Features:

  • displays tag name, ID, CSS classes
  • clicking on a class name toggles that class for the element
  • add a class (F5)
  • add an ID to an element that does not have one (F6)
  • edit the ID on an element (F7)

Highlighter Toolbar

 

The Highlighter Toolbar appears above the Developer Toolbar at the bottom of the window and provides access to element-oriented tools and quick, precise access to other elements.

Features:

  • "Highlight" button switches between highlight (choose an element) and selected modes (F8)
  • Buttons toggle the tools sidebar on/off and which tool is in the sidebar. For example, clicking the Styles button will show the style inspector. The initial expected buttons cover the Layout and Styles. (F9)
  • Breadcrumb-style navigation from the selected element all the way up to the top of the document and down to the next child
  • Button to slide the toolbar up and make room for the HTML Tree (F10)

Sidebar

Today's screens tend to be wider than they are tall. By placing as many tools as possible in a sidebar on the right, we can take better advantage of the available screen real estate.

Features:

  • As with the Web Console, opening a tool in the sidebar changes the viewport size but does not cause a reflow (instead adding a scrollbar if necessary) (F11)
  • Also similar to the Web Console, tools opened in the sidebar can be popped out into separate windows. (F12)

|Feature ux design=In progress mockups are here:

https://wiki.mozilla.org/User:Rcampbell/DevToolsPlanning |Feature implementation plan=` |Feature security review=` |Feature privacy review=` |Feature localization review=` |Feature accessibility review=` |Feature qa review=https://wiki.mozilla.org/QA/Waverley/Developer-Tools/Highlighter/TestPlan |Feature operations review=` |Feature implementation notes=` |Feature landing criteria=` }}

Feature details

Priority P1
Rank 1
Theme / Goal `
Roadmap Developer Tools
Secondary roadmap `
Feature list Desktop
Project `
Engineering team DevTools

{{#set:Feature priority=P1

|Feature rank=1 |Feature theme=` |Feature roadmap=Developer Tools |Feature secondary roadmap=` |Feature list=Desktop |Feature project=` |Feature engineering team=DevTools }}

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-needed `
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` `
User experience ` `
Product marketing ` `
Operations ` `

{{#set:Feature products status=`

|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=sec-review-needed |Feature security health=` |Feature security notes=` |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=` |Feature qa notes=` |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}