The invention is generally directed to viewing fonts, and more particularly to a system and method for previewing fonts as displayed on web pages.
Generally, web page design tools allow a user to construct a web page based on a number of constituent elements (e.g., hyperlinks, graphics, text, etc.) that may be described in Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), etc. For example, HTML specifies elements based on particular tags (e.g., text elements such as <p>, list elements such as <dl>, etc.). When designing the constituent elements of a web page, designers may desire to visually choose a font which best suits their aesthetic desires. Conventional design tools require the designer to alter the constituent elements of the web page. For example, web page editor software (e.g., What You See Is What You Get (WYSIWYG) web page editors) may make changes to a web page by modifying the web page's source code (e.g., HTML and/or CSS code). Accordingly, to preview a font using a conventional web page editor, a font is selected and the source code for the web page currently loaded in the web page editor is modified to reflect the new source code. Depending on the containment of the altered HTML, the viewing of the altered HTML with the selected font may potentially violate licensing usage restrictions on the font. Therefore, it would be advantageous to have a system and method which allows for previewing of the selected font at the client level, without altering the source code and/or the constituent elements of the web page.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In light of the above, it would be beneficial to provide a system and a method that previews a font on a web page at the client level, without altering the constituent elements of the web page. Therefore, aspects of this disclosure relate to a system for previewing fonts on a web page without altering the constituent elements of the web page that includes a browser for viewing a web page, selecting elements of the viewed web page, and previewing fonts on the web page. According to aspects of this disclosure, the browser may include a user interface. For example, the user interface of the browser may include a title bar, a navigation bar, a status bar, and a web page view area. Further, the browser and/or the user interface may be configured such that selecting elements of the viewed web page does not cause the web page to reflow. In one or more embodiments, the browser may download fonts from a server and activate the downloaded fonts only for preview purposes.
Other aspects of this disclosure relate to a method for loading and viewing a web page in a browser to preview fonts without altering the constituent elements of the web page. In one or more arrangements, the method may include receiving a web page at a browser, storing a representation of the web page into a memory, rendering the representation of the web page in the browser, receiving a selection of one or more elements of the representation of the web page, receiving input defining one or more font property values, modifying the selected elements of the representation of the web page according to the received one or more font property values, and rendering the representation using the modified selected elements to preview the web page with the font display characteristics of the received font property values.
These and other novel advantages, details, embodiments, features and objects of the disclosure will be apparent to those skilled in the art from the following detailed description, the attached claims and accompanying drawings, listed herein.
Certain embodiments are illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
In the following description of the various embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which are shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope of the present invention.
Aspects of this disclosure relate to a system and method for previewing fonts on a web page without altering the constituent elements of the web page (i.e., non-destructive previewing of fonts). With reference to
One or more aspects of the disclosure may be embodied in computer-usable data and/or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices to render one or more fonts for output on a device such as a display or a printer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other data processing device. The computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc. As will be appreciated by one of skill in the art, the functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects of the invention, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein.
With reference to
Some aspects of the disclosure relate to a system for previewing fonts on a web page without altering the constituent parts of the web page. It should be understood that many various user input devices may be employed including, but not limited to, a mouse, a keyboard, a track ball, touch screen, voice recognition circuitry, infrared control and the like.
According to aspects of this disclosure, a user may interact with computing system environment 100 to view a web page in the browser 121. In one example, the user may interact with the browser 121 and/or the network interface 109 to download a web page from one or more networks (e.g., the Internet) and subsequently view the downloaded web page in the browser 121.
An illustrative user interface (UI) 200 of a browser such as browser 121 (
According to aspects of the disclosure, navigation bar 220 may provide controls to allow a user to navigate to different web pages as well as navigate through the changes being previewed (e.g., changes to the fonts of the currently viewed web page). As seen in
The back history button 221 may provide controls that cause the browser to navigate back one page in the browser's web page history. The forward history button 222 may provide controls that cause the browser to navigate forward one page in the browser's web page history. In some embodiments, the back history button 221 and the forward history button 222 may be disabled if there are no web pages in the in the browser's web page history. In some embodiments, the back history button 221 may be associated with tool-tip text (e.g., “Click here to go back one page”, etc.). In some embodiments, the forward history button 222 may be associated with tool-tip text (e.g., “Click here to go forward one page”, etc.).
The URL combo box 223 may provide controls for address bar functionality. For example, in some embodiments, a user may navigate to a web page by entering a web page URL into the URL combo box 223 and pressing the “Enter” button on the keyboard. Once the page is loaded into the interface 200 the web page URL will be saved to the URL combo box 223 as part of a saved web page URL list for the URL combo box 223. In some embodiments, the saved web page URL list may persist between UI 200 sessions. The URL combo box 223 may provide suggested web page URLs based on entered text in the URL combo box 223. The suggestions may be web page URLs that have a matching portion of the typed URL. In some embodiments, a user may navigate to a web page interacting with the combo box (e.g., “dropping” the URL combo box to display the saved web page URL list) and selecting a web page URL from the saved web page URL list. In some embodiments, the URL combo box 223 may be associated with tool-tip text (e.g., “Enter a web page address to preview”, etc.).
The refresh page button 224 may provide controls to refresh the contents of the web page currently viewed in interface 200 (e.g., rendered web page). Refreshing the web page may cause any font changes (e.g., fonts being previewed, as discussed below) made to the current web page to be removed from the rendered web page. In some embodiments, a warning may not be presented to a user. In some embodiments, the refresh page button 224 may be associated with tool-tip text (e.g., “Click here to refresh the current page”, etc.).
The stop loading page button 225 may provide controls to stop loading the current web page. If a web page is not currently downloading then activating the stop loading page button does nothing. In some embodiments, the stop loading page button 225 may be associated with tool-tip text (e.g., “Click here to stop loading the current page”, etc.).
The previous change button 226, and/or the next change button 227 may provide the controls to cycle through the changes being previewed (e.g., changes to the fonts of the currently viewed web page). For example, activating the next change button 227 provides controls to cycle to the next element on the currently viewed web page that has been changed. The next element is relative to the currently selected element. Similarly, activating the previous change button 226 provides controls to cycle to the previous element on the currently viewed web page that has been changed. The previous element is relative to the currently selected element. In some embodiments, the previous change button 226 and/or the next change button 227 may be included on an information browser pane. In some embodiments, the previous change button 226 and/or the next change button 227 may be disabled until a change has been applied to the currently viewed web page. In some embodiments, interface 200 may include an information browser pane (not shown) that provides a summary view of the changes being previewed in the currently viewed web pages (e.g., a listing of the changes being previewed, details on the elements that have been modified by the changes being previewed, etc.). In some embodiments, the previous change button 226 and/or the next change button 227 may be associated with tool-tip text (e.g., “Click here to reveal the previous change on this page”, “Click here to reveal the next change on this page”, etc.).
According to aspects of the disclosure, status bar 230 may provide controls to allow a user to manage selections of the web page's constituent elements, apply changes to the web page for preview, as well as manage the visibility of the navigation bar 220. As seen in
The select page body button 231 may provide controls that, upon activation, clear any current selections of elements, remove any visual indicators displayed on the currently viewed web page, select every element on the currently viewed web page, and draw a visual indicator around the outside edge of the currently viewed web page. In some embodiments, the select page body button 231 may be associated with tool-tip text (e.g., “Click here to select the web preview page body”, etc.).
The clear selection button 232 may provide controls that, upon activation, clear any current selections of elements and remove any visual indicators displayed on the currently viewed web page. In some embodiments, the clear selection button 232 may be associated with tool-tip text (e.g., “Click here to clear the web page selections”, etc.).
The hide/show navigation bar button 233 may provide controls that, upon activation, hide/show the navigation bar 220. For example, when a user activates the hide/show navigation bar button 233 while the navigation bar 220 is visible, the navigation bar 220 will be made non visible. Similarly, when a user activates the hide/show navigation bar button 233 while the navigation bar 220 is not visible, the navigation bar 220 will be made visible. In some embodiments, the hide/show navigation bar button may be associated with tool-tip text (e.g., “Click here to hide/show the navigation bar”, etc.).
The preview type menu 234 may provide controls for a user to view the fonts that may be previewed and select a desired font to preview on the selected elements of the currently viewed web page. For example, a user may interact with the preview type menu to open up a list of fonts available to the underlying browser. In some embodiments, the fonts available to the browser may be provided by the operating system such as operating system 115 (
In some embodiments, the preview type menu 234 may have a default value corresponding to the font type of the last selected element of the rendered web page. If zero elements have been selected, the preview type menu 234 may default according to a predefined scheme (e.g., the font type of the first element of the rendered web page having a defined font size, a font type predetermined by browser, etc.). Additionally, the current value of the preview type menu 234 may be updated as elements are selected. For example, in some embodiments, the current value of preview type menu 234 may be updated to have a value corresponding to the font type of the last selected element of the rendered web page.
The font size slider control 235, and/or the font size combo box control 236 may provide controls to select a particular font size a user desires to preview in the selected elements of the currently viewed web page. According to aspects of the disclosure, as discussed in detail below, after selecting a font size, the underlying browser may receive the selected font size, and the selected elements on the currently viewed web page in the browser may be modified to preview the selected font size. For example, a user may interact with the font size slider control 235 (e.g., slide the slider to the left and/or right) to increase/decrease the fonts size of the currently selected elements of the currently viewed web page. As another example, a user may interact with the font size combo control 236 (e.g., click on the combo box and select a listed number from the drop down list, which represents a particular font size) to select a particular font size for the currently selected elements of the currently viewed web page. In some embodiments, the font size slider control 235 and/or the font size combo box control 236 may be associated with tool-tip text (e.g., “Click here to modify the font size”, etc.).
In some embodiments, the font size slider control 235 and/or the font size combo box control 236 may have a default value corresponding to the font size of the last selected element of the rendered web page. If zero elements have been selected, the font size slider control 235 and/or the font size combo box control 236 may default according to a predefined scheme (e.g., the font size of the first element of the rendered web page having a defined font size, a font size predetermined by the browser, etc.). Additionally, the current value of the font size slider control 235 and/or the font size combo box control 236 may be updated as elements are selected. For example, in some embodiments, the current value of the font size slider control 235 and/or the font size combo box control 236 may be updated to have a value corresponding to the font size of the last selected element of the rendered web page.
As also seen in
As discussed above, a web page may be loaded and viewed in interface 200 to preview fonts without altering the constituent elements of the web page. It is noted that a browser may access web pages currently published on the world-wide-web and/or Internet (i.e., web pages accessible on the world-wide-web/Internet through a URL) so that font changes may be previewed before the font changes may be committed to the published web pages.
According to aspects of this disclosure, the browser may include display regions that indicate the loading progress of the web page being received at the browser.
Referring again to
As seen in step 305 of
As seen in step 307 of
According to aspects of the disclosure, a user may perform a single selection, multiple selections, and an anchor element selection. For example, a single selection selects a single element of the rendered web page. In some embodiments, a user may perform a single selection by moving a mouse pointer to the desired element on the rendered web page and performing a single mouse click. Upon performing the mouse click, only the desired element will be selected. Any previously selected element will be cleared. Additionally, if a user performs a single selection on an element that is already selected, the selection for that element will be cleared (e.g., the element will be unselected and the visual indicator removed). Upon selection, a single visual indicator will be drawn around the selected element, as discussed above (see, e.g.,
A multiple selection selects multiple elements of the rendered web page. In some embodiments, to multiply select elements, a user may move the mouse pointer to the desired element on the rendered web page and perform a single mouse click while simultaneously holding down a modifier key (e.g., “Control” key, “Cmd” key, etc.). Upon performing the mouse click while holding down the modifier key, the desired element will be selected, a visual indicator will be rendered, and any previously selected element will remain selected.
An anchor selection selects an anchor element (e.g., web page link, URL, etc.) of the rendered web page. According to aspects of the disclosure, when a user selects an anchor element, the associated link may not be followed automatically. Instead, the element will be selected and a visual indicator will be rendered. Additionally, if a user performs an anchor element on an anchor element that is already selected, the selection for that anchor element will be cleared. Anchor elements may also be single or multiply selected as discussed above. In some embodiments, upon selecting an anchor element, browser may display a tool-tip instructing the user to hold down a modifier key on the keyboard to follow the link (e.g., tool-tip text “CTRL+SHIFT+Click to follow link”, “ALT+Click to follow link”, etc.).
Referring again to
In some embodiments, the font property may be embodied in a font change command. In these embodiments, the font change command may include one or more font properties. For example, interface 200 may include an apply font changes button (not shown). In these embodiments, the font change command may be generated upon activation of the apply font changes button. Upon activation, the font change command may be generated such that the current font size of the font size combo box control 236 (e.g., the default or last selected font size of the font size combo box control 236) and the font type of the preview type menu 234 (e.g., the default or last selected font type of the preview type menu 234) is specified. In these embodiments, each font property in the font change command may be applied to the selected elements, as discussed below.
Referring again to
According to aspects of the disclosure, a selected element may contain nested elements (i.e., elements within elements). For example, a text element, such as a paragraph element (e.g., HTML element having tag <p>) may be nested with an anchor element (e.g., HTML element having tag <a href>). Moreover, nested elements may contain other nested elements. In some embodiments, the received font property may apply only to the currently selected element (i.e., the parent element) and not to the nested elements (i.e., the child elements). For example, for a font property specifying a font type of the “Helvetica” font type, only the parent element will be changed to display text in “Helvetica.” Any child element will remain unchanged. In other embodiments, the font property may apply recursively to all nested elements (e.g., the font property is applied to the parent and the child elements). For example, for a font property value specifying a font type of the “Helvetica” font type, the parent element and the child elements will be changed to display text in “Helvetica.”
As seen in step 313 of
According to aspects of the disclosure, a user may apply multiple font property changes to the representation of the web page. For example, the user may select a second font property they wish to preview after previewing the first font property change in the rendered representation of the web page. The second font property will modify the selected elements accordingly (e.g., a first received font property specifying a font size of 20 is applied and a second received font property specifying a font type of “Arial” is then generated and applied). As another example, a user may alter which elements are selected before selecting a second font property they desire to preview in the representation of the web page (e.g., a first received font property specifying a font size of 20 is applied, the user adds/removes an element selection, and a second received font property specifying a font type of “Arial” is then generated and applied). One skilled in the art will appreciate that any arbitrary number of selection alterations and font property changes may be processed by the browser.
According to aspects of the disclosure, the browser may store a record and/or list of the changes applied to the rendered representation. For example, the browser may store a list of elements which have been modified since the web page was first loaded or last refreshed. Referring now to
According to aspects of the disclosure, a user may print the rendered representation with the previewed font(s). In some embodiments, user interface 200 may include a control (not shown) to print the currently viewed web page. In other embodiments, the control to print may be provided in a separate user interface. For example, as discussed above, the browser may be included in a font manager application. In these embodiments, the control to print may be provided in the font manager application user interface. In such embodiments, a user may print the web page being previewed in the browser by selecting a control the font manager application user interface (e.g., by selecting a corresponding menu item in the “file” menu of the font manager application UI).
According to aspects of the disclosure, the modified elements may be exported to web page source code. For example, the modified elements may be exported from the locally stored DOM to a second memory as one or more files of web page source code (e.g., HTML and/or CSS code). In some embodiments, the exporting may create the one or more files of web page source code according to the rendered representation. In some embodiments, the exporting may merge the rendered representation (e.g., merge the modified elements) into one or more files of web page source code that may be stored in the second memory. In some embodiments, the second memory may include the web page files being published to the Internet at the URL associated with the web page currently loaded in the browser. In these embodiments, the export process may merge the modified elements into the web page files being published. In some embodiments, the export process may proceed modified element by modified element and propose changes to web page source code that must be accepted (or rejected) by a user. In other embodiments, the export process may proceed automatically.
According to aspects of the disclosure, the exporting may provide syntax checks to check for possible processing differences between different browser types. During the syntax checks, the modified element may be further modified to include additional code and/or fix current code to compensate for the possible processing differences. For example, a first browser type may process nested elements differently than a second browser type. Therefore, a syntax check for nested elements may be conducted. Upon detecting a nested element, code may be modified/inserted so that the element may be rendered consistently across the two browser types.
In some embodiments, the exporting may include a CSS specificity calculator. For example, the CSS specificity calculator may assist the exporting process by processing the modified elements and/or web page source code including one or more CSS rules to locate one or more CSS rules that need to be modified so that the modified elements may be properly exported. As another example, the CSS specificity calculator may assist the exporting process by processing the modified elements and/or the web page source code including one or more CSS rules and provide an indication to a user that indicates the one or more CSS rules that need to be modified so that the modified elements may be exported properly as web page source code. In these embodiments, the indication may also provide the user with a proposed change to the one or more CSS rules so that the source code may be modified according to proper font style/and or size.
The methods and features recited herein may further be implemented through any number of computer readable media that are able to store computer readable instructions. Examples of computer readable media that may be used include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical disk storage, magnetic cassettes, magnetic tape, magnetic storage and the like.
While particular embodiments of the present invention have been described and illustrated, it should be understood that the invention is not limited thereto since modifications may be made by persons skilled in the art. The present application contemplates any and all modifications that fall within the spirit and scope of the underlying invention disclosed and claimed herein.