Git Product home page Git Product logo

instantsearch-specs's Introduction

instantsearch-specs's People

Contributors

aymeric-giraudet avatar bobylito avatar dhayab avatar eunjae-lee avatar fabienmotte avatar francoischalifour avatar haroenv avatar iam4x avatar ronanlevesque avatar samouss avatar sarahdayan avatar shortcuts avatar yannickcr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

instantsearch-specs's Issues

Align on algoliaClient / createAlgoliaClient

Currently we are diverging in the way we can use a different client for searching. We have algoliaClient in React InstantSearch and createAlgoliaClient in InstantSearch.js, which is proving it a bit difficult for a project like Algolia transformers since it needs to support all these forms, which is why aligning would be nice.

I think my preferred way is this:

createClient({ originalCreateClient: algoliasearch, appId, apiKey });

Implement IS.css in IS.js

Breadcrumb

ClearAll

CurrentRefinedValues

HierarchicalMenu

Highlight

Hits

HitsPerPageSelector

InfiniteHits

Menu

PriceRanges

  • Rename widget to NumericRange
  • Change API: remove labels list (duplicate of NumericRefinementList)
  • Update DOM

NumericRefinementList

NumericSelector

Pagination

PoweredBy

RangeSlider

RefinementList

SearchBox

  • Change API: remove the poweredBy option
  • Update DOM

SortBySelector

Snippet

StarRating

Stats

Toggle

Document which slots/templates/components are expected

We should document and align which ways users have to customise the dom of the widgets. This is the templates in IS.js, the slots in Vue InstantSearch and the component props in React InstantSearch.

Can be another header like options (originally had them in there, but removed in 3dce846).

`escapeHTML` by default

I remember having had this discussion a few months ago. Should we set escapeHTML to true by default in InstantSearch 3?

Introduce a CHANGELOG

Hey @ronanlevesque,

I saw you released a v3, can we have on the repo a CHANGELOG with the breaking changes so it makes it easy for us to implement?

Thanks πŸ‘

InstantSearch.js - Toggle count is confusing

possible solution: remove count.

Problem: count will always be "what it will be when you click this". Which means when not selected, the count is the count when it will be selected, and when selected the count will be what it will become unchecked.

Screenshots:

screenshot 2018-10-31 at 09 37 45

screenshot 2018-10-31 at 09 37 42

IMO this can't be fixed without going to a radio input display, which doesn't make much sense, so the count should be removed

minimise complicated selectors

When trying to use the theme and override some parts, it's hard to override selectors with an importance higher than class, so we should avoid those IMO

Highlight needs wrapper

AFAIK the current implementation of highlight is with a wrapper element, and then "nonhighlighted" and "highlighted" parts. Is this a change on purpose?

Menu with SearchBox

The style of link switch when the user trigger a search. It's seems to come from the highlight style that override the link style.

menu

Change default highlighting tag to mark

This is a breaking change, and thus not yet possible, but would be a good idea once we all use instantsearch.css

See also MDN

The HTML Mark Text element (<mark>) represents text which is marked or highlighted for reference or notation purposes, due to the marked passage's relevance or importance in the enclosing context.

Panel collapse button is not vertically centered

The "βž•" in the panel with the collapsed option is not vertically centered.

Collapse button

The issue is that this is a special character that is not vertically centered by default.

Right now there's top: 0 which makes it below the baseline of the header text.

The value top: -5px would make the default symbol βž•vertically aligned. However, if the user edits the default template, top: -3px would be the correct value.

We could either:

  1. Change the default symbol
  2. Go for top: -3px and ignore the 2 pixels difference for the default βž•
  3. Programmatically change the top value if the template is overriden

I would personally go for (2).

What do you think?

search box: same size images

screen shot 2017-10-24 at 11 03 56

Both images should be the same size, and maybe even smaller (1em) so they fit in a button without forcing the "big button style"

With height and width 1em (before it was 20 and 40 (px implied)), it looks like this:

screen shot 2017-10-24 at 11 09 45

List hover link cursor blink

On all the list the links are wrap by an <li> element, in general it's bigger than the link. So when we hover the different item of list the cursor quickly swap between the pointer and the default one. At high speed it appears like a blink. Maybe the link could take all the space available in order to avoid the blink.

Before

before

After

after

Implement IS.css in Vue IS

Analytics

  • Create widget

Breadcrumb

Clear

CurrentRefinedValues

Highlight

Input

  • Remove widget

Menu

NoResults

  • Rename widget to NoHits

NumericRefinementList

NumericSelector

Pagination

PoweredBy

PriceRange

RangeSlider

Rating

RefinementList

Results

ResultsPerPageSelector

SearchBox

SortBySelector

Snippet

Stats

Toggle

TreeMenu

Implement IS.css in React IS

Analytics

  • Create widget

Breadcrumb

ClearAll

CurrentRefinements

  • Rename widget to CurrentRefinedValues
  • Update DOM

HierarchicalMenu

Highlight

Hits

HitsPerPage

InfiniteHits

Menu

MultiRange

  • Rename widget to NumericRefinementList
  • Update DOM

NumericSelector

Pagination

Panel

  • Remove widget
  • Add templates to all widgets

PoweredBy

RangeInput

RangeSlider

RefinementList

SearchBox

SortBy

Snippet

StarRating

Stats

Toggle

document the "connector" options too

There are some inconsistencies in what is provided in the different flavours (for example in IS.js we call refine more descriptive names sometimes, same for items).

Let's do a consistency pass here!

CurrentRefinements sync

There's a difference between IS.Js and RIS regarding this widget, and I'm not sure if we went the right direction

IS.js RIS
screen shot 2018-01-11 at 16 13 03 screen shot 2018-01-11 at 16 14 03

This is clear in the difference between hierarchical menus

IS.Js RIS
screen shot 2018-01-11 at 16 16 14 screen shot 2018-01-11 at 16 20 54

As you see in the first screenshot, it's hard to get an accurate number for the "count", so I'd suggest going with a attribute/label: value structure. This is more flexible WRT different kinds of results (page: 1, price: 1, etc).

What I suggest is to take the DOM of RIS in this case and not show the count anymore

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.