In this article, we propose a set of flexible methods to better understand treatment effect heterogeneity with respect to observed covariates in difference-in-differences designs. We consider the framework where multiple covariates are needed to justify a parallel trends assumption, but the covariates of interest for analyzing heterogeneity is of much lower dimension, the leading case being one. We first propose doubly-robust estimators for the best linear approximation of (i) the conditional average treatment effect on the treated (CATT) function, and (ii) the relative CATT (RCATT) function, which express the CATT in percentage points relative to the conditional average of the untreated outcome among treated units. In some situation, however, these approximations can overlook treatment effect heterogeneity. To avoid these pitfalls, we consider sieve-based semi-nonparametric estimators for the CATT and the RCATT functions, where the sieve dimension is chosen in a data-driven manner. Importantly, our proposed semi-nonparametric estimators are sup-norm rate-adaptive. We also establish the validity of a Gaussian multiplier bootstrap procedure for constructing honest confidence bands for the CATT and RCATT curves. We illustrate the practical appeal of our causal inference by studying how the effect of job displacement varies with age.