Docs & rules
This is a public, read-only report. Striff reads this repository's docs, turns each sentence that makes a claim about the code into a rule, and checks the rule against the code on the default branch. How this works
2 stale names in these docs.
master8537b90Last read Oct 3
Once installed, Striff checks every pull request.
Stale names in these docs2
Each sentence below has a stale name: a type the default branch doesn't declare, or declares somewhere else. Edit the doc so it matches the code, or bring the type back.
- Gone
IAnimatableThe Core provides a simple (and sufficient) framework where an IAnimatable object knows its position in a timeline.
The repository once had
src/LiveChartsCore/Drawing/IAnimatable.cs. It doesn't now. Closest name there:Animatable. - Gone
IAnimatableEvery time we access a motion property we get the value of the property at the current time based on the IAnimatable animation.
The repository once had
src/LiveChartsCore/Drawing/IAnimatable.cs. It doesn't now. Closest name there:Animatable.
Live-Charts/LiveCharts2 — documented rules
39 of 39 rules, printed October 14, 2026.
| The sentence in your docs | |||
|---|---|---|---|
| Read Oct 3 | Xi: Gets or sets the xi, the value where the section starts at the X axis, set the property to null to indicate that the section must start at the beginning of the X axis, default is null. | RectangularSection has Xi | Holds |
| Read Oct 3 | Xj: Gets or sets the xj, the value where the section ends and the X axis, set the property to null to indicate that the section must go to the end of the X axis, default is null. | RectangularSection has Xj | Holds |
| Read Oct 3 | Yi: Gets or sets the yi, the value where the section starts and the Y axis, set the property to null to indicate that the section must start at the beginning of the Y axis, default is null. | RectangularSection has Yi | Holds |
| Read Oct 3 | Yj: Gets or sets the yj, the value where the section ends and the Y axis, set the property to null to indicate that the section must go to the end of the Y axis, default is null. | RectangularSection has Yj | Holds |
| Read Oct 3 | The Rx, Ry, MaxBarWidth, Padding, Stroke, Fill, and IgnoresBarPosition properties behave identically to the equivalents on ColumnSeries — see the Column Series article for examples. | RangeColumnSeries has Padding | Holds |
RangeColumnSeries has Stroke | Holds | ||
RangeColumnSeries has Fill | Holds | ||
| Read Oct 3 | The simplest way to feed the series is the RangeValue helper in LiveChartsCore.Defaults (shared with RangeColumnSeries and RangeRowSeries), which carries Low and High and maps to the coordinate slots the series expects (PrimaryValue = High, TertiaryValue = Low). | RangeValue is in LiveChartsCore.Defaults | Holds |
RangeValue has Low | Holds | ||
RangeValue has High | Holds | ||
| Read Oct 3 | The series exposes the usual Stroke and Fill properties, with a small twist: | RangeLineSeries has Stroke | Holds |
RangeLineSeries has Fill | Holds | ||
| Read Oct 3 | GeometryStroke and GeometryFill style the markers at each high / low endpoint. | RangeLineSeries has GeometryStroke | Holds |
RangeLineSeries has GeometryFill | Holds | ||
| Read Oct 3 | LineSmoothness controls the cubic-bezier tangent strength on both curves, exactly like LineSeries — 0 = straight polyline, 1 = fully curved (default 0.65). | RangeLineSeries has LineSmoothness | Holds |
| Read Oct 3 | By default the library already defines a default formatter for every series, all the series have a different formatters, but generally the default value uses the Series.Name and the ChartPoint.Coordinate.PrimaryValue properties, the following code snippet illustrates how to build a custom tooltip formatter. | Series has Name | Holds |
ChartPoint has Coordinate | Holds | ||
| Read Oct 3 | We used the Model property of the point, the Model property is just the item in the Values collection, for example in the next case, the Model property is of type City. | ChartPoint has Model | Holds |
| Read Oct 3 | :::tip The PieSeries class uses the ToolTipLabelFormatter property to configure the text inside the tooltip. | PieSeries has ToolTipLabelFormatter | Holds |
| Read Oct 3 | geoMap.DataPointerDown += (sender, points) => { if (points.FirstOrDefault()?.Context.DataSource is not LandDefinition land) return; // Look up each series' value for this land. foreach (var series in geoMap.Series ?? []) if (series.TryGetValue(land.ShortName, out var value)) Console.WriteLine($"{series.Name}: {value}"); | LandDefinition has Name and ShortName | Holds |
| Read Oct 3 | :::info Override the gradient endpoints (e.g. to pin the legend to 0–100 even when the data only spans 5–87) by setting MinValue and MaxValue on the HeatLandSeries. | HeatLandSeries has MinValue and MaxValue | Holds |
| Read Oct 3 | Wrap one in a GeoVisualElement(visual) { Longitude, Latitude } to anchor it at a geographic coordinate; | GeoVisualElement has Longitude and Latitude | Holds |
| Read Oct 3 | The marker below is an ordinary Visual whose DrawnElement is a circle. | Visual has DrawnElement | Holds |
| Read Oct 3 | If you need the raw projector — to position something yourself, hit-test a click, etc. — use GeoMapChart.Project(lon, lat) and the inverse GeoMapChart.Unproject(LvcPoint). | GeoMapChart has Project and Unproject methods | Holds |
| Read Oct 3 | If you only need a synchronous lookup (e.g. on a custom gesture), call geoMap.GetPointsAt(new LvcPointD(x, y)) — same ChartPoint shape, no event subscription needed. | GeoMapChart has a GetPointsAt method | Holds |
| Read Oct 3 | If the series specifies the Mapping property, then the global mapper will be ignored and instead it will use the series instance mapper. | ISeries has Mapping | Holds |
| Read Oct 3 | The IChartEntity interface forces our points to have a Coordinate, LiveCharts will use this property to build the plot, when the interface is implemented correctly, you will notice a considerable performance improvement, specially on large data sets. | IChartEntity has Coordinate | Holds |
| Read Oct 3 | Now to implement IChartEntity we need to add 2 properties the Coordinate (the location of the point in the UI) and the MetaData (just some information LiveCharts needs to build the chart). | IChartEntity has MetaData | Holds |
| Read Oct 3 | When LiveCharts finds a null instance or the coordinate is set to Coordinate.Empty it will skip the point: | Coordinate has Empty | Holds |
| Read Oct 3 | There are 2 ways to format and axis labels, using the Labels property and using the Labeler property, you must normally use the Labels property to indicate names, and the Labeler property to give format to the current label. | PolarAxis has Labels | Holds |
PolarAxis has Labeler | Holds | ||
| Read Oct 3 | Finally notice that you can combine the LiveCharts.CotangentAngle and LiveCharts.TangentAngle with decimal degrees, the following expressions are valid also: | LiveCharts has CotangentAngle | Holds |
LiveCharts has TangentAngle | Holds | ||
| Read Oct 3 | We can add custom elements to a chart using the VisualElements property, this property is of type IEnumerable<ChartElement>, the library provides the Visual class, this class inherits from ChartElement and handles animations, the PointerDown event and the creation and destruction of the drawn geometries in the canvas. | Visual extends ChartElement | Holds |
| Read Oct 3 | The easiest way is to inherit from DrawnGeometry, this class implements IDrawnElement and also animates all of its properties; | DrawnGeometry implements IDrawnElement | Holds |
| Read Oct 3 | In the next example we inherit from BoundedDrawnGeometry it only adds the Width and Height properties to the DrawnGeometry class. | BoundedDrawnGeometry extends DrawnGeometry | Holds |
BoundedDrawnGeometry has Width | Holds | ||
BoundedDrawnGeometry has Height | Holds | ||
| Read Oct 3 | Zooming and panning is disabled by default, you can enable it by setting the ZoomMode property, this property is of type ZoomAndPanMode, this type is a flag enum it means that you can combine the options as you need, you can learn more about zooming and panning options here. | ZoomAndPanMode is an enumeration | Holds |
See these where the change is. The browser extension puts a pull request's doc findings, and a diagram of what it changed, on the GitHub page itself, so the code and what your docs say about it are side by side.