Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tachyons (CSS) Incompatibility #201

Closed
caseywatts opened this issue Nov 21, 2017 · 13 comments
Closed

Tachyons (CSS) Incompatibility #201

caseywatts opened this issue Nov 21, 2017 · 13 comments

Comments

@caseywatts
Copy link

Billboard.js currently doesn't work in projects that use Tachyons.

Here is a fiddle with Tachyons included (it doesn't render)
https://jsfiddle.net/moy6420x/

Here is the same fiddle, but without Tachyons (it does render):
https://jsfiddle.net/Lbdrf77f/

The issue is probably a conflict with the Tachyons CSS class .bb (~= border bottom). I'm not even sure a good workaround for this yet.

@netil
Copy link
Member

netil commented Nov 22, 2017

Thanks @caseywatts for reporting the issue.
I'll try to look for it :)

@caseywatts
Copy link
Author

I poked around the source code a bit - I'm having trouble telling what the .bb class is responsible for and where it gets assigned. It seems like it's usually something like a ~billboardjs-container?

@netil
Copy link
Member

netil commented Nov 23, 2017

All the class names used are defined at

The below image is the basic DOM tree constructed. You can see that class names with the prefix bb- are defined according its role.
image

The basic idea on providing default css file is not to use without change. It means, change css according your needs.

So, when you need to combine with other css frameworks/libraries, perhaps changes are required to prevent some unexpected styling.

@caseywatts
Copy link
Author

Thanks for looking into this with me @netil !

All of the css class names in that file classes.js are good and don't/wouldn't clash with Tachyons or others. I like that they're namespaced bb-, that's great :)

At the root of the DOM image you pasted is id='LineChart' class='bb', and that bb there seems like it might be the conflict? There is some css in the bundled css output that depends on things being nested within something with class bb. That's the part that does conflict with Tachyons and seems like it would more likely conflict with other frameworks (not classes namespaced with bb-).

Could you help me find where in the codebase bb is applied to the root element?

@netil
Copy link
Member

netil commented Nov 28, 2017

Well, the class name bb is set to base element at the time of instantiation.

$$.selectChart.html("").classed("bb", true);

and for default css file, you can find the definition as below.

.bb {
svg {
font: 10px sans-serif;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
path, line {
fill: none;
stroke: #000;
}
text {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
}

@caseywatts
Copy link
Author

awesome! This is just what I needed 🎉

I changed those two instances of bb to billboard-chart locally, and everything works as expected now :)

I'd be happy to make a PR to change this bb to something more descriptive?

Some ideas:

  • billboardjs
  • billboardjs-chart
  • billboard-chart
  • bb-chart-container
  • bb-container

@netil
Copy link
Member

netil commented Nov 29, 2017

@caseywatts I think we need discuss more on this, because changing the class name can affect in various way like compatibility.

And also I don't think that bb is kinda common name which is broadly used and having some incompatibility issue always.

Change is easy, but if is possible we need to find a way to minimize those affects for previous releases.

@netil
Copy link
Member

netil commented Nov 30, 2017

I think there're 2 alternatives for this.

  1. An option to set the class name prefix.
    In this case, the bb-somthing will be replaced as bb-chart-something.
bb.generate({
     prefix: "bb-chart",
     ...
});
  1. Or set a global option, which can affect all of the generation.
// Just set prefix once, and maintain the same configuration
bb.config({
     prefix: "bb-chart"
});

// All generation will have 'bb-chart-something' class name.
bb.generate(...);
bb.generate(...);

@caseywatts
Copy link
Author

Thanks for thinking about this more :)

I can imagine:

bb.generate({
    container-class: 'bb-chart',
    prefix: 'bb-chart'
    ...
})

As for option 1 vs 2 - either one would work. I imagine 1 is easier to implement, so we can go with that one~

Also, to reiterate

@caseywatts
Copy link
Author

Once we implement this change, I can also make a PR to the readme and/or docs site to warn users of Tachyons that they need to use this option (or it would fail silently).

@netil
Copy link
Member

netil commented Dec 1, 2017

I'll try implement this as follow.
Using the existing bindto option, expanding it to allow set detail option for wrapper element.

// it can be used as it was
bindto: "#chart",

// or set more specifically
bindto: {
	element: "#chart",
	classname: "classname-value"
}

@caseywatts
Copy link
Author

This bindto solution does allow me to avoid having bb be present, and it gives us backward compatibility nicely. This will technically unblock me, but it still might be tough for anyone else in this situation. Two reasons, and an idea for another path forward:

base css (currently .bb)

With this bindto solution, we'll also want to add more about css to the docs. We can point users to these 17 lines of js and explain that they'll likely need to duplicate them for their custom class (mostly the middle 4)

Without that .bb css, the charts would look like this:

image

custom class names for the billboard container?

I don't need to be able to customize the classname, other than to avoid it being bb lol.

I'm comfortable putting any custom classname I need additionally on the same element I use as the bindto. The ember-c3 wrapper that I'm using (I modified it locally so I can work with billboard in the same way) - it puts a custom css attribute on the container, too.

another idea?

(I'm not 💯 that this is best either, I'm just adding ideas to our pool of options~)

I suspect it might be easier / more efficient long-term if we replace bb with something less likely to clash, like billboard-chart. But that is tough to do while maintaining backwards compatibility. I could imagine a migration path:

  • introduce a flag that can be set that switches bb to billboard-chart for users ready/willing to use the new way (in particular, any Tachyons users)
  • introduce a deprecation message that bb will be changing to billboard-chart (idk where this could go - in the readme? and also after installation?)
  • eventually (in 6 mo or a year?) a "major" release happens that swaps this out as the default - this can be in the release notes for that major version

I have to say thank you again, for being so active at maintaining billboard.js and discussing feedback openly - I don't take this for granted lol
🎉 🤗

@netil
Copy link
Member

netil commented Dec 4, 2017

Thank @caseywatts for your thoughts and really appreciate that.

I think those users having this necessities are users who has good knowledge on handling this.
So, the concerns(which needs to update css when classname changes) isn't really an issue.

I'm seeing that giving the chance to update classname is enough for this moment, but this doesn't mean not having any changes in the future.

The nature of opensource is always hearing the thoughts and opinions from the users, adopting and evolving base on that :)

@netil netil closed this as completed in 22cee47 Dec 4, 2017
netil pushed a commit that referenced this issue Jun 18, 2019
# 1.0.0 (2019-06-18)

### Bug Fixes

* fallback to __bindto's id attribute when it is not a string ([16a1e6d](16a1e6d))
* regex replaces everything that is not alphanum, - or _ ([1f093dd](1f093dd))
* **tooltip:** Correct tooltip position when is zoomed ([45785ab](45785ab)), closes [#197](#197) [#281](#281) [#431](#431) [#546](#546)
* throw errors instead of alerts ([12cf47d](12cf47d))
* **all:** Re-organize import from d3 ([c11a215](c11a215)), closes [#285](#285) [#313](#313)
* **AMD-module:** updating to enforce the AMD standard ([4f8f63c](4f8f63c))
* **api:** Cancel transitions on destroy. ([7dd287d](7dd287d)), closes [#766](#766) [#765](#765)
* **api:** Change the way of hiding tooltip ([#358](#358)) ([67c8305](67c8305)), closes [#343](#343)
* **api:** Correct .x()/.xs() to work properly ([80d4e1b](80d4e1b)), closes [#634](#634) [#635](#635)
* **api:** Correct on exporting custom points ([f65bcfb](f65bcfb)), closes [#541](#541) [#741](#741)
* **api:** Correct toggle interaction ([#456](#456)) ([3682a83](3682a83)), closes [#454](#454)
* **api:** Fix css encoding in exported svg ([321971e](321971e)), closes [#843](#843) [#844](#844)
* **api:** Fix JSON data loading ([9067138](9067138)), closes [#398](#398) [#400](#400)
* **api:** Fix loading to maintain correct x index ([f3881bc](f3881bc)), closes [#517](#517) [#519](#519)
* **api:** Fix regions.remove() error ([#579](#579)) ([0c0374f](0c0374f)), closes [#529](#529) [#578](#578)
* **api:** Fix to remove instance ([#357](#357)) ([80fdc31](80fdc31)), closes [#347](#347)
* **api:** Remove cached data when .unload() is called ([aa91bab](aa91bab)), closes [#626](#626) [#627](#627)
* **api-load:** Allow false for unload ([e52e5ad](e52e5ad)), closes [#321](#321) [#333](#333)
* **api.zoom, interaction:** fix zoom bug for rects ([b3521c8](b3521c8)), closes [#33](#33) [#46](#46)
* **arc:** Correction on rendering 0 values ([dcfa12c](dcfa12c)), closes [#652](#652) [#656](#656)
* **arc:** Fix to generate arc when data is zero ([04a4dd8](04a4dd8)), closes [#935](#935)
* **arc,api:** Correct on data representation and handling ([#332](#332)) ([3eec8d7](3eec8d7)), closes [#303](#303) [#331](#331)
* **area:** Apply gradient on dynamic data loading ([954c303](954c303)), closes [#855](#855)
* **area-line-range:** Fix working with grouped data ([1546dda](1546dda)), closes [#630](#630) [#644](#644)
* **area-range:** Correct handling null data ([cc1d4ee](cc1d4ee)), closes [#482](#482) [#487](#487)
* **area-range:** Fixed data parsing ([#485](#485)) ([4b78de5](4b78de5)), closes [#481](#481)
* **axis:** Adjust axes range ([0130519](0130519)), closes [#859](#859)
* **axis:** Avoid unnecessary computing char dimension ([3f52827](3f52827)), closes [#399](#399) [#407](#407)
* **axis:** Correct axis label position ([#538](#538)) ([37cca8c](37cca8c)), closes [#519](#519) [#534](#534)
* **axis:** Correct axis transition ([e2bec90](e2bec90)), closes [#759](#759)
* **axis:** Correct not to generate unnecessary ticks ([#560](#560)) ([9346e66](9346e66)), closes [#348](#348)
* **axis:** Correct rotated x axis rendering ([2b02a03](2b02a03)), closes [#230](#230) [#234](#234)
* **axis:** Correct tick's position implementation ([#457](#457)) ([09547be](09547be)), closes [#380](#380)
* **axis:** Correct ticks less than ~0.1 to be shown ([8d14bcb](8d14bcb)), closes [#387](#387) [#409](#409)
* **axis:** Fix indexed x axis order ([#879](#879)) ([df8d385](df8d385)), closes [#714](#714) [#877](#877)
* **axis:** Fix on axis width sizing ([10f27e5](10f27e5)), closes [#920](#920)
* **axis:** fix side-effects from [#717](#717) ([#740](#740)) ([4eba766](4eba766))
* **axis:** Fix x Axis tick fit for timeseries ([9cda54f](9cda54f)), closes [#628](#628)
* **axis:** improve tick label size calculation ([8dc08bd](8dc08bd)), closes [#323](#323) [#324](#324)
* **axis:** Round float numbers from 'binary floating point' ([bd2fbbe](bd2fbbe)), closes [#222](#222) [#320](#320)
* **Axis:** Fix text alignment when legend is not showing ([620d737](620d737)), closes [#25](#25) [#686](#686)
* **Axis:** Fix tick text position ([0ca6b18](0ca6b18)), closes [#672](#672) [#678](#678)
* **bar:** Adjust bar width regardless tick count limit ([8f92d3e](8f92d3e)), closes [#166](#166) [#182](#182)
* **bar:** Fix bar position on width option ([0883588](0883588)), closes [#720](#720) [#832](#832)
* **bar:** Remove new line chars on path string ([#533](#533)) ([1f9db5a](1f9db5a)), closes [#530](#530)
* **bower:** add scss source files to bower package ([945ee66](945ee66))
* **bubble,point:** Fix bubble size change on load API ([#214](#214)) ([d9eb371](d9eb371)), closes [#163](#163)
* **chart:** Correct data label text prop ref ([d9f4477](d9f4477)), closes [#780](#780) [#781](#781)
* **color:** Correct the way on setting pattern value ([#509](#509)) ([164a3f9](164a3f9)), closes [#507](#507)
* **color:** Remove importing schemeCategory10 ([72864c5](72864c5)), closes [#298](#298) [#373](#373)
* **colors:** Fix color method ([8effaad](8effaad)), closes [#233](#233)
* **data:** babel transform bug ([1f8efc2](1f8efc2)), closes [#17](#17) [#18](#18)
* **data:** Correct data label text to be shown on scatter ([#492](#492)) ([f9f0081](f9f0081)), closes [#488](#488)
* **data:** Correct data order to not be altered ([e39db91](e39db91)), closes [#379](#379) [#412](#412)
* **data:** Correct data.onclick calls ([#203](#203)) ([a5fd3fc](a5fd3fc)), closes [#202](#202)
* **data:** Correct onover/out callback on touch ([#769](#769)) ([9ad9817](9ad9817)), closes [#768](#768)
* **data:** Fix data indexing ([2e3010b](2e3010b)), closes [#863](#863)
* **data:** Fix empty label text flickering ([173990b](173990b)), closes [#901](#901)
* **data:** Remove selection on data.onmin/max ([#143](#143)) ([7709c32](7709c32)), closes [#8](#8)
* **data,interaction:** Bar type interaction error on multiple x ([cf49d71](cf49d71)), closes [#178](#178) [#180](#180)
* **data.convert:** allow dots in json properties ([7ff837a](7ff837a)), closes [#14](#14)
* **dev-env:** Update main entry point ([1488232](1488232)), closes [#391](#391) [#525](#525) [#549](#549)
* **domain:** Fix getting Y domain min/max value ([864e112](864e112)), closes [#685](#685) [#690](#690)
* **event:** Correct on resizing all generated charts ([10d6d73](10d6d73)), closes [#404](#404) [#466](#466) [#468](#468)
* **gauge:** Correct background rendering on fullCircle ([#141](#141)) ([7f5fda2](7f5fda2)), closes [#140](#140)
* **grid:** Correct grid position ([5a7a94d](5a7a94d)), closes [#820](#820) [#821](#821)
* **grid:** Correct grid scale on zoom ([2904d41](2904d41)), closes [#799](#799)
* **grid:** Correct updating grid's attributes ([#414](#414)) ([1662a1f](1662a1f)), closes [#389](#389)
* **interaction:** Correct drag selection error ([#493](#493)) ([f38cd24](f38cd24)), closes [#490](#490)
* **interaction:** Correct event binding ([#27](#27)) ([f09d2ed](f09d2ed)), closes [#24](#24)
* **interaction:** Correct mouse event create ([#252](#252)) ([930f74b](930f74b)), closes [#251](#251)
* **interaction:** Correct rect element sizing ([6a09985](6a09985)), closes [#522](#522) [#523](#523)
* **interaction:** Prioritize mouse input ([#280](#280)) ([5cc3442](5cc3442)), closes [#92](#92)
* **internal:** Correct evaluating inputType condition ([#257](#257)) ([4b1f3cc](4b1f3cc)), closes [#92](#92)
* **internal:** Fix on unexpected resize event firing ([#572](#572)) ([dd5af9c](dd5af9c)), closes [#571](#571)
* **label:** Correct newly added texts transition position ([f81d440](f81d440)), closes [#648](#648) [#718](#718)
* **legend:** Correct legend positioning ([51ee8ce](51ee8ce)), closes [#737](#737) [#737](#737) [#752](#752)
* **legend:** Correct to keep the original class value ([46ebf35](46ebf35)), closes [#444](#444)
* **legend:** Fix legend template update for dynamic loading ([#622](#622)) ([1e465ae](1e465ae)), closes [#621](#621)
* **legend:** Fix resize for arc ([#707](#707)) ([89a3ece](89a3ece)), closes [#705](#705)
* **legend:** Fix resizing when legend template is used ([#706](#706)) ([87294dd](87294dd)), closes [#705](#705)
* **Legend:** working with useless transition effect ([676b1e5](676b1e5)), closes [#25](#25) [#41](#41)
* **line:** Correct on rotated step type ([#474](#474)) ([74bd639](74bd639)), closes [#471](#471)
* **line:** Correct zoom with data.regions ([a76000a](a76000a)), closes [#728](#728) [#729](#729)
* **line:** Fix areaGradient for spaced data name ([3fbd4b2](3fbd4b2)), closes [#930](#930)
* **line:** Fix gradient with dataname starting w/no ([fe31102](fe31102)), closes [#936](#936)
* **options:** Correct when bindto element not exist ([448a45d](448a45d)), closes [#743](#743) [#749](#749)
* **pie:** Correct multiline label text ([9bacb9b](9bacb9b)), closes [#784](#784)
* **point:** Check for node.childNodes existance for IE / Edge ([59a5a05](59a5a05)), closes [#601](#601) [#602](#602)
* **point:** Correct point expansion on old IEs ([2e9dbfe](2e9dbfe)), closes [#897](#897)
* **point:** Fix custom point hover position ([2edb82a](2edb82a)), closes [#618](#618) [#700](#700)
* **radar:** Correct on resizing ([#540](#540)) ([f2fdecc](f2fdecc)), closes [#497](#497)
* **radar:** Fix data.onover/out callback ([91c8df2](91c8df2)), closes [#768](#768) [#773](#773)
* **radar:** Fix incorrect rendering ([#738](#738)) ([f8915e2](f8915e2)), closes [#735](#735)
* **readme:** Change broken link about license ([#188](#188)) ([a9a1e09](a9a1e09))
* **regions:** Fix regions resizing on zoom ([#561](#561)) ([c61960d](c61960d)), closes [#483](#483)
* **selection:** Correct multiple callback calls ([#120](#120)) ([f7cae57](f7cae57)), closes [#117](#117)
* **selection:** Correct multiple selection error ([#455](#455)) ([353f809](353f809)), closes [#445](#445)
* **selection:** Correct on data selection ([#113](#113)) ([eb13350](eb13350)), closes [#112](#112)
* **shape:** Correct newly added points transition position ([d9dc75a](d9dc75a)), closes [#648](#648) [#659](#659)
* **shape:** Fix for empty data in normalization ([#649](#649)) ([76f3558](76f3558)), closes [#623](#623)
* **shape:** Fix normalization on hidden data ([#645](#645)) ([aba9496](aba9496)), closes [#643](#643)
* **shape:** line.step.type config not working ([#86](#86)) ([62273bf](62273bf)), closes [#85](#85)
* **shape:** Prevent when non-existed data.hide is given ([#650](#650)) ([6a72602](6a72602)), closes [#623](#623)
* **shape, api.zoom:** fix zoom for barchart ([917384f](917384f)), closes [#16](#16) [#32](#32)
* **shape.line:** Correct getting shape object ([#47](#47)) ([b2a0acf](b2a0acf)), closes [#10](#10)
* **shape.line:** Correct return type ([#148](#148)) ([3317183](3317183)), closes [#147](#147)
* **size:** Correct height increase during resize ([#223](#223)) ([9699a55](9699a55)), closes [#155](#155) [#164](#164)
* **size:** Correct width on resizing ([#189](#189)) ([5a93a19](5a93a19)), closes [#179](#179)
* **subchart:** Correct subchart extent option ([eac3e65](eac3e65)), closes [#142](#142) [#805](#805)
* **subchart:** Maintain subchart selection on resize ([c7d7fa5](c7d7fa5)), closes [#778](#778)
* **subchart:** Maintaion selection for category x axis ([3f46609](3f46609)), closes [#778](#778)
* **tiles:** Fix background tiles id ([c452b43](c452b43)), closes [#225](#225) [#226](#226)
* **tooltip:** Correct interaction on mobile ([23ff1df](23ff1df)), closes [#376](#376) [#377](#377)
* **tooltip:** Correct on toggling data series ([#253](#253)) ([e7d1b19](e7d1b19)), closes [#240](#240)
* **tooltip:** Enhancement for overlapped points ([3ee694d](3ee694d)), closes [#568](#568) [#569](#569)
* **tooltip:** Fix for dynamically loaded data adding column ([009d3b1](009d3b1)), closes [#660](#660) [#661](#661)
* **tooltip:** Fix for mobile environment ([#616](#616)) ([981bc77](981bc77)), closes [#593](#593)
* **tooltip:** Fix handling on color tile ([#875](#875)) ([56c2f99](56c2f99)), closes [#816](#816) [#816](#816)
* **tooltip:** Fix mid value showing for area-range type ([#598](#598)) ([a9d615b](a9d615b)), closes [#597](#597)
* **tooltip:** Fix on ungrouped tooltip showing for custom shape ([#548](#548)) ([9411758](9411758)), closes [#547](#547) [#241](#241)
* **tooltip:** Fix tooltip.show() for multi x axis ([aaa8293](aaa8293)), closes [#785](#785)
* **tooltip:** Make linked tooltip to work based on index ([2df0a38](2df0a38)), closes [#494](#494) [#496](#496)
* **tooltip:** Non linked tooltip exclusion ([feeb536](feeb536)), closes [#393](#393) [#396](#396)
* **ua:** Fix the side-effect by refactoring ([#898](#898)) ([d00d903](d00d903))
* **zoom:** Correct not firing data.onclick callback ([7368446](7368446)), closes [#583](#583) [#584](#584)
* **zoom:** Correct not to re-scale while zoom is disabled ([#273](#273)) ([502d6fd](502d6fd)), closes [#272](#272)
* **zoom:** Correct zoom in rendering on 0 coord. ([f61b792](f61b792)), closes [#169](#169) [#170](#170)
* **zoom:** Correct zoom resizing ([#139](#139)) ([67e863e](67e863e)), closes [#60](#60)
* **zoom:** Correct zoom.range() to work ([6830e5c](6830e5c)), closes [#290](#290) [#291](#291)
* **zoom:** Correct zooming for category axis type ([#441](#441)) ([c8a164a](c8a164a)), closes [#177](#177)
* **zoom:** Fix on .zoom() API  ([cd0d109](cd0d109)), closes [#581](#581) [#582](#582)
* **zoom:** Fix on rotated axis ([#892](#892)) ([983d970](983d970)), closes [#736](#736) [#818](#818)
* **zoom:** Fix on zoom.rescale option ([#566](#566)) ([851ec3e](851ec3e)), closes [#470](#470)
* **zoom:** Fix tooltip pos for bubble/scatter ([1fc9c16](1fc9c16)), closes [#906](#906)
* **zoom:** Fix zoom level reset ([ec24c2c](ec24c2c)), closes [#913](#913)
* **zoom:** Fix zoom rescale by wheel ([585d607](585d607)), closes [#890](#890)
* **zoom:** Maintain zoommed scale on .zoom() ([7b7a274](7b7a274)), closes [#654](#654) [#702](#702)
* **Zoom:** Updated domain values onzoom/onzoomend ([acf3239](acf3239)), closes [#770](#770) [#777](#777)

### Features

* **all:** Add TS definition  ([8b34691](8b34691)), closes [#629](#629) [#682](#682)
* **api:** Intent to ship .config() ([b0dc53a](b0dc53a)), closes [#502](#502) [#545](#545)
* **arc:** Enhance multiline text label ([7e57c67](7e57c67)), closes [#784](#784)
* **Arc:** Implement multiline donut title ([b816dc0](b816dc0)), closes [#71](#71) [#130](#130)
* **area:** Intent to ship area.linearGradient ([0063a4c](0063a4c)), closes [#755](#755) [#800](#800)
* **axis:** Enhancement on tick multiline ([#386](#386)) ([4178e40](4178e40)), closes [#381](#381)
* **axis:** Inten to ship axis.x.tick.tooltip ([94a8650](94a8650)), closes [#236](#236) [#240](#240)
* **axis:** Intent to ship axis clipPath option ([#459](#459)) ([e9fb973](e9fb973)), closes [#458](#458)
* **axis:** Intent to ship multi Axes ([becd3c3](becd3c3)), closes [#98](#98) [#697](#697) [#699](#699)
* **axis:** Intent to ship tick show options ([#746](#746)) ([89c1aa2](89c1aa2)), closes [#737](#737)
* **axis:** Intent to ship tick.text.position ([#426](#426)) ([816ce2a](816ce2a)), closes [#380](#380)
* **axis:** Pass category name param ([#329](#329)) ([7e06851](7e06851)), closes [#327](#327)
* **bar:** Intent to ship bar.radius option ([#476](#476)) ([17e2b41](17e2b41)), closes [#359](#359)
* **bar:** Intent to ship variant width ([ae46c85](ae46c85)), closes [#720](#720) [#724](#724)
* **bubble:** Intent to ship bubble type ([#195](#195)) ([c80d78f](c80d78f)), closes [#163](#163)
* **Chart:** Expose primary node elements ([#511](#511)) ([de3f60c](de3f60c)), closes [#423](#423)
* **ChartInternal,Options:** Add before/after initialization callbacks ([354d7e2](354d7e2)), closes [#55](#55) [#126](#126)
* **ChartInternal,Options:** Add new clipPath option ([6531692](6531692)), closes [#56](#56) [#95](#95)
* **color:** Intent to ship color.onover ([5ec2d9e](5ec2d9e)), closes [#754](#754) [#768](#768) [#772](#772)
* **core:** Intent to ship global config ([1b524e1](1b524e1)), closes [#932](#932)
* **core:** Intent to ship instance property ([#315](#315)) ([d20c68d](d20c68d)), closes [#308](#308)
* **data:** Intent to ship data.labels.centered ([cbe95b7](cbe95b7)), closes [#876](#876)
* **data:** Intent to ship data.labels.colors ([c10c946](c10c946)), closes [#871](#871)
* **data:** Intent to ship data.min()/max() ([e9f1417](e9f1417)), closes [#637](#637) [#638](#638)
* **data,Options:** Implement data.onmin/onmax callback ([6a88a74](6a88a74)), closes [#8](#8) [#125](#125)
* **data.type:** Intent to ship 'area-range' charts ([9fd9577](9fd9577)), closes [#277](#277) [#293](#293)
* **export:** Intent to ship export as an image ([9ad9956](9ad9956)), closes [#78](#78) [#213](#213)
* **gauge:** Enhance display multiline labels ([#516](#516)) ([3a1267e](3a1267e)), closes [#442](#442)
* **gauge:** Intent to ship stack data ([0d7fb3e](0d7fb3e)), closes [#580](#580)
* **grid:** Intent to ship grid.front option ([#385](#385)) ([58621a0](58621a0)), closes [#384](#384)
* **interaction:** Add new inputType.touch.preventDefault option ([baa7a7a](baa7a7a)), closes [#82](#82) [#88](#88)
* **legend:** Add argument to legend template ([2ecab0d](2ecab0d)), closes [#302](#302) [#322](#322)
* **legend:** Add shapes to legend ([a0b6542](a0b6542)), closes [#269](#269) [#289](#289)
* **legend:** Implement legend.contents ([26de147](26de147)), closes [#58](#58) [#134](#134)
* **line:** Ability to hide points for linecharts only ([3d217cc](3d217cc)), closes [#520](#520) [#521](#521)
* **option:** Intent to ship bar.padding option ([#370](#370)) ([6671e63](6671e63)), closes [#335](#335)
* **Options:** Add custom classname for bind element ([#212](#212)) ([22cee47](22cee47)), closes [#201](#201)
* **Options:** Implement color.tile option ([bec92dd](bec92dd)), closes [#193](#193) [#196](#196)
* **Options:** New tooltip onshow/onhidden and linked options ([c96d2dd](c96d2dd)), closes [#341](#341)
* **pie:** Enhance innerRadius option ([1668463](1668463)), closes [#856](#856)
* **pie:** Intent to ship pie's pdding and innerRadius options. ([b04ba3d](b04ba3d)), closes [#301](#301) [#304](#304)
* **plugin:** Add support for Stanford Diagrams ([a162cb7](a162cb7)), closes [#829](#829)
* **point:** Allow grouped custom point ([#565](#565)) ([ee12f96](ee12f96)), closes [#562](#562)
* **point:** Implement alternate markers ([8f1b56f](8f1b56f)), closes [#209](#209) [#219](#219)
* **point,bar:** Intent to ship sensitivity ([ebeb30f](ebeb30f)), closes [#831](#831)
* **radar:** Intent to ship multiline axis ([44198e1](44198e1)), closes [#904](#904)
* **radar:** Intent to ship radar type ([#453](#453)) ([7d0da65](7d0da65)), closes [#59](#59)
* **radar:** Intent to ship radar.direction.clockwise ([#543](#543)) ([f17fa7e](f17fa7e)), closes [#464](#464)
* **regions:** Intent to ship dasharray ([ca94580](ca94580)), closes [#491](#491) [#498](#498)
* **shape:** Intent to ship stack.normalize ([3af15a5](3af15a5)), closes [#623](#623) [#643](#643)
* **shape.line:** Add a line_classes option ([5781b5a](5781b5a)), closes [#181](#181)
* **shape.line:** Allow customization of points ([cc2ac8b](cc2ac8b)), closes [#173](#173) [#184](#184)
* **stats:** Intent to ship stats ([bc163b9](bc163b9)), closes [#928](#928)
* **text,Options:** Add new data.labels.position option ([51b09d7](51b09d7)), closes [#57](#57) [#99](#99)
* **theme:** Add new 'graph' theme ([014537a](014537a)), closes [#631](#631) [#647](#647)
* **theme:** Intent to ship css theme ([e113278](e113278)), closes [#241](#241) [#507](#507)
* **title:** Intent to ship multilined title ([#731](#731)) ([171df89](171df89)), closes [#612](#612) [#727](#727)
* **tooltip:** Implement tooltip.order ([db7d0f8](db7d0f8)), closes [#127](#127) [#131](#131)
* **tooltip:** Intent to ship linked tooltip with name ([ae263a1](ae263a1)), closes [#401](#401) [#402](#402)
* **tooltip:** Intent to ship tooltip.contents.template ([c1af5df](c1af5df)), closes [#813](#813)
* **tooltip:** Intent to ship tooltip.contents.text ([c16ab48](c16ab48)), closes [#826](#826)
* **tooltip:** Intent to ship tooltip.doNotHide ([81e2f09](81e2f09)), closes [#812](#812)
* **zoom:** Add option to zoom by dragging ([da2ce10](da2ce10)), closes [#416](#416) [#508](#508) [#513](#513)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants